Python基础语法七:元组字典和集合

1.元组

1.什么是元组

元组是不可变的列表(不支持增删改的操作),元组是有序的(支持下标操作)

元组是容器型数据类型,将()作为容器的标志,多个元素之间用逗号,隔开

元组中的元素的要求和列表一样

1)空元组:()

2)单个元素的元组:

Tuple2 = (10,)

print(tuple2, type(tuple2))  # (10,) 

3)多个元素的元组

tuple4 = (100, 200, 300)

tuple5 = 100, 200, 300

2.获取元组中的元素

1.获取单个元素

names = '生活大爆炸', '权利的游戏', '吸血鬼日记', '破产姐妹', '尼基塔'
print(names[-2])

2.切片

names = '生活大爆炸', '权利的游戏', '吸血鬼日记', '破产姐妹', '尼基塔'
print(names[1::2])

3.遍历

for 变量 in 元组

4.其他方式:

a.

touple6 = (10, 20, 30)
x, y, z = touple6
print(x, y, z)
num1, num2 = 100, 200  # num1, num2 = (100,200)

b. 变量1,变量2,变量3,… =元组

前面的变量的个数小于元组中元组的个数,并且有且只有一个变量前有*

变量最后的取值为不带的变量取后剩下的

person = ('余婷', '女', 18, 100, 89, 50)
name, *gender, age, num = person
print(name, gender, age, num)

2.字典基础

1.什么时候使用字典:

a.需要同时保存多个数据

b.多个数据的意义不同(需要做区分)

2.什么是字典(dict)

字典是容器型数据类型,将{}作为容器的标志,多个元素用逗号,隔开,字典元素都是键值对

{键1: 值1, 键2:值2, }

字典是可变的,支持增删改,字典是无序的,不支持下标操作

字典对元素的要求:必须所有元素都是键值对

键 - 是不可变的,是唯一的,一般是字符串

值 - 任何类型的数据,可以重复

字典在保存数据的时候,真正保存的是值,键是用来对值进行区分和说明的

2.获取字典的值

1.获取单个元素对应的值

a. 字典[key] - key不存在会报错

b. 字典.get(key) - key不存在时候不报错,报None

c. 字典.get(key, 默认值) - key不存在时候不报错,并且返回默认值

2 遍历

for 变量 in 字典

​ 循环体

这里变量取到的是字典中所有的key

dog = {'name': '财财', 'age': 3, 'breed': '土狗', 'gender': '母', 'weight': 10}
for x in dog:
    print(x, dog[x])

练习:声明一个变量,同时保存四个学生的信息,每个学生需要包含学生的姓名、年龄、电话、成绩,统计四个学生中未成年人的个数

students = [{'name': 'zhang', 'age': 19, 'tel': 110, 'score': 70}, {'name': 'zhang', 'age': 13, 'tel': 110, 'score': 70}, {'name': 'zhang', 'age': 17, 'tel': 110, 'score': 70}, {'name': 'zhang', 'age': 190, 'tel': 110, 'score': 70}]
count = 0
for x in students:
    if x['age'] < 18:
        count += 1
print('未成年人个数', count)

3,字典元素的增删改

1.增、改

语法一:

字典[key] = 新值

改:如果key存在,就将key对应的值修改成指定的值

增:如果key不存在,就以"key: 新值"的形式添加一个键值对

语法二:

添加键值对 :字典.setdufault(键,值)

movie = {'name': '西游记', 'time': '1978-10-23', 'director': '吴承恩'}
print(movie)
movie['time'] = '1989-10-2'
print(movie)
movie['score'] = 9.0
print(movie)
movie.setdefault('type', '神话')
print(movie)

2.删

1.del

Del 字典[key] - 删除指定key对应的键值对(key不存在会报错)

2.pop

字典.pop(key) - 取出字典中指定key对应的值,并返回取出的值

del movie['director']
print(movie)
value = movie.pop ('type')
print(movie)

4.字典相关操作和方法

1.字典相关操作

字典不支持加法和乘法运算

1.比较运算:

字典不可以比较大小,只能比较相等

print({'a': '1', 'b': '2'} == {'b': '2', 'a': '1'})  # True

2.in 和 not in

数据 in 字典 - 判断字典中是否存在指定的key

数据 not in 字典 - 判断字典中是否不存在指定的key

cat = {'name': '花花', 'age': 2, 'colour': '白色'}
print('name' in cat)  # True
print('花花' in cat)  # False

3.相关函数

len(字典) - 统计字典中键值对的个数

dict(数据) - 将指定的数据转换成字典

此处对数据的要求:

1.是容器型数据类型

2.数据中的元素是有且只有两个元素的容器

3.小容器中的第一个元素是不可变的

字典转换成其他数据类型:

bool(字典) - 空字典会转换成false,其他都输True

只有数字类型和小部分字符串能转换成数字,其他不行,字典也不行

list(字典) - 把字典所有的key转换成列表元素

touple(字典) - 把字典所有的key转换成元组元素

print(len(cat))
print(dict([[42, 12], [235, 6346]]))  # {42: 12, 235: 6346}
print(list(cat))

2.相关方法

1、 字典.clear() - 清空字典

2、字典.copy() - 复制字典并产生一个新的字典并返回

3、dict.fromkeys() - 创建字典

dict.fromkeys(序列) - 将序列中的元素都作为字典的key,字典的值为none

dict.fromkeys(序列, 值) - 将序列中的元素都作为字典的key,字典的值都是指定的值

stu = dict.fromkeys(['name', 'age', 'gender', 'tel', 'address', 'score'])
print(stu)

4.items, keys, values
print(cat.keys()) # 获取字典所有的key返回一个容器,这个容器不是列表
print(cat.values()) # 获取字典所有的值返回一个容器,这个容器不是列表
print(cat.items()) #获取字典所有的键值对返回一个容器,这个容器不是列表,容器中的元素是元组,每个元组对应一个键值对

  1. update

    字典.update(序列) - 用序列生成的字典去更新原字典(更新方式:不存在就添加,存在就修改)

    dict4 = {'a', '10', 's', '35'}
    dict4.update({'a', 100, 'for'})
    
    

5.集合(set)

1.什么是集合

集合是容器型数据类型,将{}作为容器的标志,里面多个元素用逗号,隔开
元素是普通数据不是键值对
{元素1, 元素2, 元素3,…}

集合是可变的,支持增删改
集合是无序的
集合对元素的要求:集合中的元素是不可变并且唯一的,列表不能作为集合中的元素
可以利用集合元素的唯一性进行去重操作

空集合:
empty = set() # {}是空字典
非空集合
set1 = {1, 123, 524}

2.集合中元素的增删改查

1查
集合没有办法直接获取单个元素,只能遍历
‘’’
for 变量 in 集合
循环体
变量取到的就是集合中的每个元素
‘’’
nums = {42, 525, 563, 56745, 575}
for x in nums:
print(x)
2增
‘’’
方法1
a.集合.add(元素)
b.集合.update(序列) - 将序列中元素全部添加到集合中,序列中元素必须是不可变的
‘’’
nums.add(1000)
print(nums)
nums.update((1, 23, 35))
print(nums)
3删
‘’’
集合.remove(元素) - 删除集合中指定的元素(元素不存在会报错)
集合.discard(元素) - 删除集合中指定的元素(元素不存在不会报错)
‘’’
4改 : 集合无法修改元素

3.数学集合运算

1 Python中的集合支持数学集合运算
2并集 |
3 差集 - 集合1 - 集合2 : 集合1中除了集合2剩下的部分
4对称差集^ 去掉两个集合公共部分后剩下的部分
5真子集 >,<
集合1 > 集合2 - 判断集合2是否是集合1的真子集
集合1 < 集合2 - 判断集合1是否是集合2的真子集

你可能感兴趣的:(Python基础语法,python)