標籤:python 列表 元組 字典
1.列表
a = [‘a‘, ‘b‘, ‘c‘, ‘abc‘]
## append 末尾追加
a.append(‘hello‘)
print (a)
[‘a‘, ‘b‘, ‘c‘, ‘abc‘, ‘hello‘]
## pop 末尾刪除
a.pop()
print (a)
[‘a‘, ‘b‘, ‘c‘]
## index 索引
print(a[0],a[1])
(‘a‘, ‘b‘)
print (a.index(‘b‘))
1
## insert 插入
a.insert(0, ‘ajing‘)
print a
[‘ajing‘, ‘a‘, ‘b‘, ‘c‘, ‘abc‘]
a.insert(3, ‘lili‘)
print a
[‘a‘, ‘b‘, ‘c‘, ‘lili‘, ‘abc‘]
## remove 刪除(一次只能刪除最前面的一個)
a.remove(‘abc‘)
print (a)
[‘a‘, ‘b‘, ‘c‘]
## sort 排序
a.sort()
print a
[‘a‘, ‘abc‘, ‘b‘, ‘c‘]
## reverse 反序
a.reverse()
print a
[‘abc‘, ‘c‘, ‘b‘, ‘a‘]
2. 切片
## 列印a所有元素
print a[:]
[‘a‘, ‘b‘, ‘c‘, ‘abc‘]
## 列印1到最後
print a[1:]
[‘b‘, ‘c‘, ‘abc‘]
## 列印1-2
print a[1:3]
[‘b‘, ‘c‘]
備忘:切片[1:3]取到的最後一位元字,是[1:3]最後一位元字(3)減1
## 間隔列印(步長)
b = range(10)
print b[0:7:2]
[0, 2, 4, 6]
## 反向切片
print a[-1]
print a[-4]
print a[:-1]
print a[-3:]
結果:
abc
a
[‘a‘, ‘b‘, ‘c‘]
[‘b‘, ‘c‘, ‘abc‘]
3.元組
列表和元組很相似,列表是可變的,元組是不可變的
## 字串轉換成元組:
str1 = ‘abcdefghigklmn‘
print (tuple(str1))
(‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, ‘h‘, ‘i‘, ‘g‘, ‘k‘, ‘l‘, ‘m‘, ‘n‘)
## 元組 a
a = (‘a‘, ‘b‘, ‘c‘, ‘abc‘, ‘hello‘)
單個元組的時候要注意加逗號:
b = (‘mn‘,)
print (type(b))
<type ‘tuple‘> (類型是元組)
否則python解析器不會識別為 tuple 類型。
## 元組方法:
count 和 index
### count 統計指定元組內相同元素的個數
c = (‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘a‘,‘k‘,‘e‘)
print a.count(‘a‘)
3 (個)
### index 索引(返回某個元素的下標)
print c.index(‘k‘)
5 (第5個位置)
註:索引的元素不在元組內的時候報 ValueError 的錯誤。
4.字典
字典 同很多語言一樣是 key:value 這種形式
字典是另一種可變容器模型,可儲存任意類型的對象。
字典的每個索引值對(key => value)用冒號(:)分割,每個對之間用逗號(,)分割,
整個字典包含在{}(大括弧)中
字典賦值有三種方式:
k = {‘name‘:‘tiantian‘, ‘age‘:‘10‘, 123:‘abc‘}
d = dict(a=1,b=2,c=3)
e = dict([(‘name‘,‘lie‘),(‘age‘,20)])
字典有很多常用的方法:
## clear 清空字典
e.clear()
## get 擷取對應key的value,值不存在返回none
print (k.get(‘name‘))
‘tiantian‘
print (k.get(‘xxx‘))
None
字典中沒有這個key和value,則返回None
## setdefault 擷取對應的key的value,若值不存在,可以自訂值
print (k.setdefault(‘name‘))
‘tiantian‘
print (k.setdefault(‘name‘, ‘didi‘))
‘didi‘
print (k.setdefault(‘xxx‘))
None
print (k.setdefault(‘xxx‘, ‘beijing‘))
‘beijing‘
## keys 擷取字典中的所有key,並組成列表
print (k.keys)
[‘age‘, 123, ‘name‘]
## iterkeys 擷取字典中所有key的對象
print (k.iterkeys())
<dictionary-keyiterator object at 0x00000000026B5F48>
## values 擷取字典中所有value,並組成列表
## itervalues 擷取字典中所有values的對象
print (k.values())
[‘10‘, ‘abc‘, ‘tiantian‘]
print (k.itervalues())
<dictionary-valueiterator object at 0x0000000002585F98>
## iteritems 遍曆
## items遍曆
print (k.iteritems())
<dictionary-itemiterator object at 0x0000000002705F98>
print (k.items())
[(‘age‘, ‘10‘), (123, ‘abc‘), (‘name‘, ‘tiantian‘)]
【iteritems() 比 items() 更好的利用資源】
for x, y in k.iteritems():
print (x, y)
返回單個元組:
(‘age‘, ‘10‘)
(123, ‘abc‘)
(‘name‘, ‘tiantian‘)
## pop刪除字典中指定keys以及他的value
k.pop(‘name‘)
print k
返回:{‘age‘: ‘10‘, 123: ‘abc‘}
5.字典的進階操作
操作一:將列表元素賦value後,組成字典
f = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
m = {}
n = m.fromkeys(f, 123) (或者:n = dict.fromkeys(f, 123),同理)
print (n)
返回:
{‘a‘: 123, ‘c‘: 123, ‘b‘: 123, ‘d‘: 123}
操作二:將兩個列表合為字典
f1= [‘a‘, ‘b‘, ‘c‘, ‘d‘]
f2 = [1, 2, 3, 4]
dict_test = dict(zip(f1, f2))
print (dict_test)
返回:
{‘a‘: 1, ‘c‘: 3, ‘b‘: 2, ‘d‘: 4}
操作三:把第一個字典,增加到第二個字典(合并字典)
k = {‘name‘:‘tiantian‘, ‘age‘:‘10‘, 123:‘abc‘}
dict_test.update(k)
print dict_test
返回:
{‘a‘: 1, ‘c‘: 3, ‘b‘: 2, ‘d‘: 4, ‘age‘: ‘10‘, 123: ‘abc‘, ‘name‘: ‘tiantian‘}
操作四:對字典進行排序
mm = dict( a=1, b=2, c=3, d=4)
print (mm)
print sorted(mm.itertiems(), key = lambda d:d[0], reverse = True)
【reverse True 表示反序,False 表示正序】
本文出自 “筆記空間” 部落格,請務必保留此出處http://286577399.blog.51cto.com/10467610/1975340
9. python 列表、元組、字典