python中list详解
list相当于js中的array. array能做的事情, 差不多list都可以做到, 比如什么可变性,删除,添加,转变为字符串等基本操作
(一):我们来看一下,怎么声明一个list
name = ['sam','jimmy']
复制代码
(二):在python中也是很有用的三个函数 len,max,min.
1,len(): 用来获取list的长度
>>> len(lists)
5
复制代码
2,max(list|Numbers): 用来判断list中,最大的数字.
>>> max(lists)
5
>>> max(1,2,3,4,5)
5
复制代码
3,min(list|Numbers): 用来判断list中,最小的数字
另外, 这里补充一个生成有序list最快捷的方式, 使用list comprehension.即,在括号里面使用 for statement. 实际上, 就是一个list 派生出另外一个list. 看一个demo
>>> lists = [x for x in range(10)]
>>> lists
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
复制代码
range就是用来生成一个iterable
补充: range(start, stop[, step]) -> range object 具体含义就是born 一定范围的值. 比如range(10): 0~10. 回到 list comprehension, 这个表达式x for x in range(10) 实际上, 就相当于
lists = []
for x in range(10):
lists.append(x)
复制代码
了解了LC 之后,我们就可以脱离手码lists的困扰了. python 很方便有木有
(三): python中的两个特性 切片, 迭代
1,切片
通常,我们想要获取list中的某个元素,直接使用下标即可.但是,如果你想要取出list中间连续的几个,那么就会用到切片这一神奇的功能.
>>> my_list = ['p','r','o','g','r','a','m']
>>> my_list[2:5] # elements 3rd to 5th
['o', 'g', 'r']
>>> my_list[:-5] # 可以使用负数的index
['p', 'r', 'o', 'g']
>>> my_list[5:] # 从5一直到最末
['a', 'm', 'i', 'z']
>>> my_list[:] # 获取所有的ele
['p', 'r', 'o', 'g', 'r', 'a', 'm']
复制代码
关于切片,值得衮>, 1, 2] 复制代码
(2),copy()
newOne = lists.copy();
//或者使用
newOne = lists[:]
复制代码
这样,就避免了 内存地址重叠的problem了.
7,额外方法
除了上面说了的max,min,list等转换方法外, python 内置的还有sum,all,any.
(1),sum() 返回 list中所有元素之和
sum(lists)
复制代码
(2),all() 是为了判断, lists中所有元素通过bool(ele)之后都为True,则返回True,所以,当list元素中有'',0,[]的话,则会返回False。另外,如果list为空的话,返回的也是True
(3),any() 使用bool(ele) 判断list中的每一个元素, 如果有一个为ture的话, 返回True, 相当于或的意思. 如果list为空的话返回的是False
>>> lists
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> any(lists)
True
>>> all(lists) //存在0
False
>>> lists = []
>>> any(lists) //没有元素,不通过
False
>>> all(lists) //没有元素,通过
True
复制代码




