用[]
来表示一个列表,列表中的元素可以是任意类型,如 int
,str
, 可以是另一个 list
,也可以是一个字典。所以说 list
是 python
的苦力,什么活都可干。
>>> list = ["string",86,[1,2,3],{"a":3,"b":4,"c":"hi"}]
>>> type(list)
<type 'list'>
索引和切片
和之前字符串使用的方法一致,不过因为列表中可能什么都有,所以可以对元素进行二次切片
>>> list[0]
'string'
>>> list[0][2:5] #对列表中第一个字符换进行了二次切分
'rin'
>>> list[3]["a"] #对列表中第4个字典换进行了二次切分
3
反转
这个功能会经常用到,字符串也可以使用,并不会更改原值,会创建新值,原变量不变
# 列表的反转
>>> list = [1,2,3,4,5]
>>> list[::-1]
[5, 4, 3, 2, 1]
# 字符串的反转
>>> a = "hello"
>>> a[::-1]
'olleh'
另一种方法,使用reversed
函数
>>> list(reversed("abcd"))
['d', 'c', 'b', 'a']
>>> ha = [1,2,3,4.5]
>>> list(reversed(ha))
[4.5, 3, 2, 1]
list 的基本操作
和字符串的差不多
len() 判断长度
>>> lst
['python', 'java', 'c++']
>>> len(lst)
3
+,连接两个序列
>>> lst
['python', 'java', 'c++']
>>> alst
[1, 2, 3, 4, 5, 6]
>>> lst + alst
['python', 'java', 'c++', 1, 2, 3, 4, 5, 6]
*,重复元素
>>> lst
['python', 'java', 'c++']
>>> lst * 3
['python', 'java', 'c++', 'python', 'java', 'c++', 'python', 'java', 'c++']
in, 成员资格判断
>>> "python" in lst
True
>>> "c#" in lst
False
max()和min(),取最大最小值
以int类型元素为例。如果不是,都是按照字符在ascii编码中所对应的数字进行比较的。
>>> alst
[1, 2, 3, 4, 5, 6]
>>> max(alst)
6
>>> min(alst)
1
>>> max(lst)
'python'
>>> min(lst)
'c++'
cmp(),比较
>>> lsta = [2,3]
>>> lstb = [2,4]
>>> cmp(lsta,lstb)
-1
>>> lstc = [2]
>>> cmp(lsta,lstc)
1
>>> lstd = ['2','3']
>>> cmp(lsta,lstd)
-1
append(), 追加元素
>>> a = ["good","python","I"]
>>> a
['good', 'python', 'I']
>>> a.append("like") #向list中添加str类型"like"
>>> a
['good', 'python', 'I', 'like']
>>> a.append(100) #向list中添加int类型100
>>> a
['good', 'python', 'I', 'like', 100]
另一种方法:
list.append(x)
等效于:a[len(a):]=[x]
>>> a
['good', 'python', 'I', 'like', 100]
>>> a[len(a):]=[3] #len(a),即得到list的长度,这个长度是指list中的元素个数。
>>> a
['good', 'python', 'I', 'like', 100, 3]
>>> len(a)
6
>>> a[6:]=['xxoo']
>>> a
['good', 'python', 'I', 'like', 100, 3, 'xxoo']