本节内容
一、元组
1.元组其实跟列表差不多,也是存储一组数据的,只是它一旦创建,便不能再修改的。
例如:
names =("zhangsan","lisi","wangwu")
它只有两个方法,一个是count,一个是index,同样它也可以切片。
names = ("zhangsan","lisi","wangwu","zhangsan")
print(names.count("zhangsan"))
print(names.index("lisi"))
print(names[1:])
print(names[:2])
.
.
.
二、字典的操作
字典是一系列的键-值对。每个键都与一个值相关联,你可以使用键来访问与之对应的值。与键相关联的值可以是数字、字符串、列表乃至字典。
事实上可以将任何python对象用作字典的值。
info = { "name1":"zhangsan",
"name2":"lisi",
"name3":"wangwu" }
字典的特性:
无序的
key必须是唯一的,所以天生去重
1、访问字典中的值
print(info["name2"])
判断一个key在不在字典中
print("names1" in info)
返回True存在 False 不存在
print(info.get("names1"))
存在返回值,不存在返回None print(info.get("names","panglicai"))
可以跟个参数“panglicai”,当不存在是可以打印panglicai
2、增加键-值对
info["names4"] = "zhaoliu"
info["names5"] = ["zhaoliu",22]
info["names6"] = {"names":"zhaoliu","age":22}
3、修改一个键-值对
info["names5"][1] = 33
info["names6"][names] = "plc"
4、删除
info.pop()
info.pop("names1") 删除后会返回删除的值
info.pop("names7")删除不存在的会报错
info.pop("names7","mei")当添加参数后,删除不存在的会显示指定的参数mei而不会再报错
del删除后不会返回删除的值
del info["names2"] 删除后的键-值对会永远消失
5、fromkeys()
names = ["alex","jack","rain"]
print(dict.fromkeys(names,0))
>>{‘alex‘: 0, ‘jack‘: 0, ‘rain‘: 0}
会把names列表中的每个元素当做key 然后把指定的参数0当做value
相当于这三个key值指向的都是同一个value可以通过id看内存的地址的方法
print(id(n1["alex"]),id(n1["rain"]))
>> 1512064640 1512064640
当指定的参数是字符串或数字时,可以修改其中的值
n1 = dict.fromkeys(names,0)
n1["jack"] = 2
print(n1)
>>{‘alex‘: 0, ‘jack‘: 2, ‘rain‘: 0}
可以看到只有jack对应的值变了相当于(a=10 b=a a =11 b还是10的原理一样)
当指定的参数是一个列表时修改其中的一个值,其字典中的值都会变
n1 = dict.fromkeys(names,[1,2,3])
n1["jack"][1] = 4
print(n1)
>>{‘alex‘: [1, 4, 3], ‘jack‘: [1, 4, 3], ‘rain‘: [1, 4, 3]}
结果会把所有key相关联的value都改了
因为当其中一个列表的值变化时它不会开辟一块新空间来存储,而是在原列表中直接修改,
并且原来的指向关系也没有发生变化,所以列表中的其中一个元素发生变化,
其他的key相关联的value也跟着变。
6、items()
一般用于循环
names = {"name1":"alex","name2":"rain","name3":"jack"}
效率低
for k,v in names.items():
print(k,v)
>>name1 alex
name2 rain
name3 jack
相当于:for key in names:
print(key,names[key])
效率高
keys.() 只循环所有key 默认也只循环key
values.() 只循环所有的值
7、popitem() 随机删除一个键-值对
8、setdefaul 获取键-值,如果没有则添加
print(names.setdefaul("name4","plc"))
如果存在name4 则显示name4对应的key,如果没有则把name4:plc 添加到names字典中
9、update() 合并两个字典,当新字典中出现原来字典的键但值不一样时,合并时按新的来。
原文:http://www.cnblogs.com/plc-python/p/6307736.html