一、元组
元组和列表非常类似,但元组一旦定以后不能修改,不能进行项list一样append()和insert()增加元素个数,也不能进行del、remove()和pop()删取元素的操作,但元组可以执行如下:
1、声明元组
tuple=(1,2,3,4,“a”)
print(tuple)
(1, 2, 3, 4, 5, 'a')
2、查找元组元素:
1.取单个某一位置的元素: toupe[下标]
2.切片操作: touple[上标:下标]
tuple1=(1,2,3,4,5,'a')
print(tuple1[1:4])
3.元组长度的确定
tuple1=(1,2,3,4,5,'a')
print(len(tuple1))
3、元组的操作:+、*
list1=(1,2,3)
list2=(“a”,“b”)
print(list1+list,list1*2)
(1, 2, 3, 'a', 'b') (1, 2, 3, 1, 2, 3)
习题;输入 1--7数字对应输出星期几;例如如果输入1,这对应输出星期日。
number1=int(input("请输入一个数字:"))
week_touple1=("星期一","星期二","星期三","星期四","星期五","星期六","星期七")
print(week_touple1[number1-1])
二、字典
字典是一个容器类型的数据类型,以键值对成对出现来存储数据。
键值对: 键:值 以冒号隔开。其中值可以是任何数据类型;键:理论上只能是不可变的数据类型。
字典的特点: 可变性、无序性(不能使用下标来遍历字典)
1、定义/声明一个字典(dict)
格式:dict={key:value} 多个键值对之间用逗号隔开。其中key唯一
2、查字典中的值
a、通过key查找获取value: 字典名[key] ----获取单个value
注意:使用key获取value时,字典中的key必须存在。否则报错
b、通过方法get()获取值: 字典名.get(key)
可以通过get()方法判断字典中是否存在key值。
name_xiaoming={'name':'xiaoming','age':18, 'score':20,'face':10}
print(name_xiaoming.get('a'))
None
3、遍历字典中的元素
用for循环遍历字典获取字典中的键(key),通过键(key)获取值(value)
name_xiaoming={'name':'xiaoming',
'age':18,
'score':20,
'face':10}
for key in name_xiaoming:
print(key, name_xiaoming[key])
name xiaoming
age 18
score 20
face 10
4、修改字典
将新值赋给dict(key)
dict1={'a':1,'b':2,'c':3}
dict1['a']=10
print(dict1)
{'a': 10, 'b': 2, 'c': 3}
5、添加、修改键值对
添加键值对,通过key取值赋值。如果key不存在,添加key。否者修改value值。
dict1={'a':1,'b':2,'c':3}
dict1['d']=4
print(dict1)
6、删除键值对
a、格式:del 字典[key]。通过key删除字典中的键值对。
dict1={'a':10,'b':10.3,'c':False,'d':[1,2]}
del dict1["d"]
print(dict1)
{'a': 10, 'b': 10.3, 'c': False}
b、pop()方法:
格式:字典.pop(key)
dict1={'a':10,'b':10.3,'c':False,'d':[1,2]}
result=dict1.pop("a")
print(dict1,result)
习题:将字典中值为字符串的全部删除
dict1={'a':10,'str':'string','b':10.3,'c':False,'d':[1,2]}
for key in dict1.copy():
value=dict1[key]
if isinstance(value,str):
dict1.pop(key)
print(dict1)
{'a': 10, 'b': 10.3, 'c': False, 'd': [1, 2]}
1、字典中还有keys和values方法
keys方法使用:字典.keys() 将字典中的所有键(key)获取形成一组列表。
dict1={'a':1,'b':2,'c':3}
print(dict1.keys())
dict_keys(['a', 'b', 'c'])
values方法使用:字典.values() 将字典中所有值(value)获取形成一组列表。
dict1={'a':1,'b':2,'c':3}
print(dict1.values())
dict_values([1, 2, 3])
2、update()
字典1.update)(字典二) 如果字典中的键值对在字典1中没有,就直接添加,如果有就是修改value。
dict1={'a':1,'b':2,'c':3}
dict2={"d":1}
dict1.update(dict2)
print(dict1)
{'a': 1, 'b': 2, 'c': 3, 'd': 1}
3、in 和 not in
判断字典中是否有指定的key
dict1={'a':1,'b':2,'c':3}
print("a" in dict1)
print("a" not in dict1)
True
三、集合
集合是一种容器,并且是无序的,元素的值具有唯一性,不能重复。
数据的存储方式:通过大括号存储元素,多个元素之间用逗号隔开。
1、集合的声明
seti={元素1,元素2,。。。}
例如: set1={1,2,3,4,1,10}
2、集合类型的转化
a、将字符串转换成集合
set2=set('abcdef')
print(set2)
{'d', 'e', 'a', 'c', 'b', 'f'}
b、将列表转成集合
set1=set(["q",2,3,4,5,6])
print(set1)
{2, 3, 4, 5, 6, 'q'}
c、将字典转换成集合,是将字典中的key取出来作为集合的元素
set1=set({"a":1,"b":2})
print(set1)
{'b', 'a'}
3、遍历集合
str1='abdaadhjkjjhks'
set1=set(str1)
str1=''
for item in set1:
str1+=item
print(str1)
dkbasjh
4、获取集合中的元素
集合不能单独的获取某一个元素,只能通过遍历的方式获取每一个元素。
set=set('12346789anc')
for item in set:
print(item,end=" ")
1 6 c 4 a 2 3 7 9 n 8
5、添加集合中的元素
a、通过update()方法添加元素: 集合1.update(集合2)
set1=set('123456')
set2=set('aa')
set1.update(set2)
print(set1)
b、add
集合.add(元素):将制定的元素添加到集合中
set1=set('123456')
set1.add('aaa')
print(set1)
{'1', '5', '2', '3', '6', 'aaa', '4'}
6、删除元素
集合中只能使用remove()删除集合中的元素:
格式: 集合.remove(指定元素)
set1=set('123456')
set1.remove("1")
print(set1)
{'4', '5', '6', '2', '3'}
在Python中集合除了作为容器相关的操作外,还可以做一下操作:
1、判断包含关系:>=、<=
集合1>=集合2:判断集合1中是否包含集合2,返回结果为bool值。
set1=set("abcdef")
set2=set("abc")
print(set1>=set2)
True
集合1<=集合2: 判断集合2中是否包含集合1。
set1=set("abcdef")
set2=set("abc")
print(set1<=set2)
False
2、集合操作 |、&、-、^
a、| 求并集
set1=set('123456')
set2=set('45678')
print(set1|set2)
{'7', '2', '4', '5', '1', '3', '8', '6'}
b、& 求交集
set1=set('123456')
set2=set('45678')
print(set1&set2)
{'4', '6', '5'}
c、- 求差集, 在set1中不在set2中的元素
set1=set('123456')
set2=set('45678')
print(set1-set2)
{'3', '2', '1'}
d、^ 获取set1和set2中除了公共部分以外的元素
set1=set('123456')
set2=set('45678')
print(set1^set2)
{'3', '7', '8', '2', '1'}
3、copy()函数
将set1中所有的元素取出来创建新的集合
set1=set('123456')
print(set1.copy())
{'3', '5', '2', '6', '4', '1'}