python列表、元组、字典
1.列表
列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。列表常用方括号表示,即:[],元素用逗号隔开。
例子:
a = ["huangzhenping","laoma",123]
print(a)
print(type(a))
说明:list 里面的元素的数据类型也可以不同;list 元素也可以是另一个 list,例:
list2 = ['python', 'java', ['asp', 'PHP'], 'scheme']
常用功能:
append:追加
例子:
a = ["huangzhenping","laoma","laozhao"]
print(a)
a.append("song")
print(a)
index:返回下标位置
a = ["huangzhenping","laoma","laozhao"]
print(a[0],a[2])
print(a.index("laoma"))
insert:往什么位置插入对象
a = ["huangzhenping","laoma","laozhao"]
a.insert(1,"song")
print(a)
pop:删除末尾元素
a = ["huangzhenping","laoma","laozhao"]
a.pop()
print(a)
remove:自定义删除
a = ["huangzhenping","laoma","laozhao"]
a.remove("huangzhenping")
print(a)
sort:排序(升序)
a = [1,3,6,7,4]
a.sort()
print(a)
reverse:反序
a = [1,3,6,7,4]
a.reverse()
print(a)
切片:(从1至5,2为步长)
a = [1,2,3,4,5,6,7,8,9,10]
print(a[0:4:2])
2.元组
tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改,tuple唯一和list定义的区别就是[]变成了(),它也没有 append(),insert()这样的方法
例子:
a = "abcdefghijkmn"
print(tuple(a))
print(type(tuple(a)))
注:有逗号时,为元组类型
例子:
a = ("hello")
print(a)
print(type(a))
b = ("hello",)
print(b)
print(type(b))
结果:
hello
<type 'str'>
('hello',)
<type 'tuple'>
tuple常用方法:
count:统计元组中相同元素的个数
a = ("a","b","c","a")
print(a.count("a"))
index:元组中某元素第一次出现的下标
a = ("a","b","c","d")
print(a.index("d"))
3.字典
字典是由花括号{}来包含其数据的,花括号内包含键(key)和其对应的值(value),一对键和值成为一个项,键和值用冒号:隔开,项和项之间用逗号,隔开,空字典就是不包含任何项的字典,也可理解为空字典就是花括号内不包含任何内容,直接使用花括号{}表示.
字典赋值有三种方式:
例子:
a = {'name': 'huang', 'age': '20'}
b = dict(name="huang", age=20)
c=dict([('name', 'huang'), ('age', 20)]) #序列中也是一个序列或元组
print(type(a))
print(type(b))
print(type(c))
结果:
<type 'dict'>
<type 'dict'>
<type 'dict'>
例子:
a = dict(name="li",age=28)
print(a)
print(type(a))
说明:避免 key 不存在的错误的两种办法:
一是通过 in 判断 key 是否存在:
'Thomas' in dict1 #
二是通过 dict 提供的 get 方法:
如果 key 不存在,可以返回 None(无结果)
自动识别为dict类型,把等于号和逗号看成冒号
例子:
a = dict({("name","li"),("age",28)})
print(b)
print(type(b))
字典常用功能:
clear:清空字典
copy:复制
get:获取信息,没有则返回为空
例子:
a = {"name":"li","age":28}
print(a.get("name"))
setdefault:存在则不变,不存在则设置一个值
例子:
a = {"name":"li","age":28}
print(a.setdefault("name","huangzhenping"))
print(a.setdefault("address","shenzhen"))
print(a)
keys:获取所有键(对象)
例子:
a = {"name":"li","age":28}
print(a.keys())
values:获取所有对象的值
例子:
a = {"name":"li","age":28}
print(a.values())
iteritems:一般用于for循环,一个一个取出来(避免占内存)
例子:
a = {"name":"li","age":28}
print(a.iteritems())
for x,y in a.iteritems():
print(x,y)
pop:删除对象key,实际上对应的值没有被删
例子:
a = {"name":"li","age":28}
a.pop("name")
print(a)
字典的高级操作
fromkeys:将一个列表引入字典中,并设置一个默认值
例子:
list1=["a","b","c"]
dict1={}
n=dict.fromkeys(list1,"test")
print(n)
print(type(n))
zip:将两个列表叠加成一个列表,如果要变成字典,则dict(zip(l1,l2))
list1=["a","b","c"]
list2=["d","e","f"]
list3=zip(list1,list2)
print(list3)
print(type(list3))
print(dict(list3))
update:将dirct_test字典和k字典合并
dict1={"a":"zhang","b":"huang"}
dict2={"c":"zhao","d":"sun"}
dict1.update(dict2)
print(dict1)
sorted:对字典排序, lambda是一个匿名函数,reverse = False 升序
dict1=dict(a=1,c=3,d=4,b=2,e=5)
print(dict1)
print sorted(dict1.iteritems())
print sorted(dict1.iteritems(),key = lambda d:d[1], reverse = False)
4.set集合
set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 (key重复元素在 set 中自动被过滤)
add(key)方法可以添加元素到 set 中
例子:
s = set([1, 1, 2, 2, 3, 3])
s.add(4)
remove(key)方法可以删除元素
例子:
s.remove(4)
说明:set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的 交集、并集等操作
5.帮助
查看数据类型:print(type(variable))
查看属性:dir(variable)
查看帮助:help(sorted)
看具体源码: Ctrl + 鼠标左键
6. 变量的强制转换
例子:
把list1作为key,list2作为value,生成一个新的字典
a = [1,2,3,4,5,6,7]
b = ['a','b','c','d','e','f','g']
dict(zip(a,b))
例子:
两个字典的合并
dict1={1:[1,11,111],2:[2,22,222]}
dict2={3:[3,33,333],4:[4,44,444]}
dictMerged1=dict(dict1.items()+dict2.items())
dictMerged2=dict(dict1,
**dict2)
相关文章