(二)2-1Python列表、元组和字典

列表 

列表是由一序列特定顺序排列的元素组成。可以把字符串,数字,字典等都可以、加入到列表中。列表也是带下标的,默认也是从0开始。
l = ['a','b','c','d','e',1,2,3]
print(type(l))
print(dir(l))
运行结果:
  <type 'list'>
  ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']


'append' ,list 的末尾增加一个元素
l = ['a','b','c','d','e',1,2,3]
print(l)
l.append('hello')
print(l)
运行结果:
  ['a', 'b', 'c', 'd', 'e', 1, 2, 3]
  ['a', 'b', 'c', 'd', 'e', 1, 2, 3, 'hello']

'index' ,符合条件的list下标
l = ['a','b','c','d','e',1,2,3]
print(l.index('c'))
运行结果:
  2

'insert',符合条件的list下标
l = ['a','b','c','d','e',1,2,3]
l.insert(2,'12306')
print(l)
运行结果:

  ['a', 'b', '12306', 'c', 'd', 'e', 1, 2, 3]

'pop', 末尾删除一个list元素
l = ['a','b','c','d','e',1,2,3]
print(l)
l.pop()
print(l)
运行结果:
  ['a', 'b', '12306', 'c', 'd', 'e', 1, 2, 3]

'remove',删除一个list元素
l = ['a','b','c','d','e',1,2,3]
l.remove('c')
print(l)
运行结果:
  ['a', 'b', 'd', 'e', 1, 2, 3]

'reverse', list 反序
l = ['a','b','c','d','e',1,2,3]
print(l)
l.reverse()
print(l)
运行结果:
  ['a', 'b', 'c', 'd', 'e', 1, 2, 3]
  [3, 2, 1, 'e', 'd', 'c', 'b', 'a']

'sort', 对list进行排序
l = ['a','b','c','d','e',1,2,3]
print(l)
l.sort()
print(l)
运行结果:
  ['a', 'b', 'c', 'd', 'e', 1, 2, 3]
  [1, 2, 3, 'a', 'b', 'c', 'd', 'e']

列表切片
字符串、列表、元祖在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以使用切片去存取他们的任意部分。可以把序列想成一个队列,我们可能需要前面3位,后面3位或者隔一位等,使用切片实现上述要求。
切片操作符在python中的原型是:
[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其他语言一样,从0 开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引值。
步长值,默认是一个接一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0.


元组
tuple是不可变的list
1、Tuple的定义形式
t = ['a','b','c','abc','123']
print(dir(t))
print(type(t))
tuple 唯一和list定义的区别就是[]变成了(),其他没有什么变化,tuple不能增加和减少,他本身自己的方法很少,只有count和index两个方法,其他list方法都不可以用。
2、Tuple单个元素
Tuple在表示单个元素的时候,是比较特别的。
a = (1,)
print(type(a))
<type 'tuple'>
<type 'tuple'>
b = ('abc')
print(type(b))
<type 'str'>

由上面例子可以知道,tuple在表示单个元素的时候,必须用,进行分割。否则Python解析器不会认为是元组。

3、Tuple的方法
'count' ,统计某个元素的个数
a= ['a','b','c','abc','123','a']
print(a.count('a'))
'index',返回某个元素的下标,不存在就报错。

字典
字典是一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中,字典赋值有3种方式
k = {'name':'zhan','age':100,123:'abc'}
d = dict(a=1,b=2,c=3)
d = dict([('name','list'),('age',20)])

字典有很多种用法:
get
setdefault
keys
values
iteritems
update
fromkeys
zip
pop

k = {'name':'zhan','age':100,123:'abc'}

字典get方法
print(k.get('name'))
print(k.get('age'))
print(k.get('address'))

字典setdefault方法
print(k.setdefault('name','hello'))
print(k.setdefault('age',121))
print(k.setdefault('address','shenzhen'))
运行结果:
zhan
100
shenzhen

字典keys
print(k.keys)
运行结果:
  ['age', 123, 'name']

字典values
print(k.values())
运行结果:
  [100, 'abc', 'zhan']

字典iteritems
print(k.iteritems())
for k,v in k.iteritems():
print(k,v)
运行结果:
  <dictionary-itemiterator object at 0x00000000026F74A8>
  ('age', 100)
  (123, 'abc')
  ('name', 'zhan')


m = {}
l = ['a','b','c','d','e']
n = m.fromkeys(l,123)
#n = dict.fromkeys(l,123)
print(n)
运行结果:
  {'a': 123, 'c': 123, 'b': 123, 'e': 123, 'd': 123}


l1 = ['a','b','c','d']
l2 = [1,2,3,4]
d = zip(l1,l2)
print(d)
运行结果:
  [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

对字典排序
d = {'a':1,'b':44,'c':12,'d':123}
sorted(d.iteritems(),key= lambda x:x[1],reverse=True)
print(d)
运行结果:
  {'a': 1, 'c': 12, 'b': 44, 'd': 123}

原文地址:https://www.cnblogs.com/pythonlx/p/7719897.html