day007-列表和字典

1,列表推导式

① 序列变换成列表

str1 = 'abc'
list1 = [x for x in str1]
print(list1)   # ['a', 'b', 'c']

nums = [10, 245, 89, 56]
list2 = [x*100 for x in nums]
print(list2)   # [1000, 24500, 8900, 5600]

② 筛选(提取出有效的或者删除无效)

scores = [89, 8, 100, 98, 67, 34, 59, 45, 23, 78, 92]
new_scores = [x for x in scores if x >= 60]
print(new_scores)

③ 不统一的变换

list4 = [19, 'abc', 98, 'mnb', 13, 53]
new_list4 = [x*10 if type(x) == int else x for x in list4]
# 用到if_else和for_in
print(new_list4)  # ->[190, 'abc', 980, 'mnb', 130, 530]

2, 相关函数

① max和min

max(序列) - 返回序列中元素的最大值
min(序列) - 返回序列中元素的最小值

nums = [90, 89, 67, 29, 789, 2]
print(max(nums))
print(min(nums))

② sum

sum(序列) - 求序列中所有元素的和(序列中的元素只能是数字)

print(sum(range(101)))

③ sorted

A sorted(序列) - 将序列中的元素从小到大排序(升序),以列表的形式返回
B sorted(序列, reverse=True) - 将序列中的元素从大到小排序(降序),以列表的形式返回

nums = [90, 89, 67, 29, 789, 2]
new_nums = sorted(nums)
print(new_nums)    # [2, 29, 67, 89, 90, 789]
new_nums = sorted(nums, reverse=True)
print(new_nums)     # [789, 90, 89, 67, 29, 2]

④ list

list(序列) - 将其他序列转换成列表(任何序列都可以转换成列表)

list1 = list('abc')
print(list1)   # ['a', 'b', 'c']

list2 = list(range(10, 15))
print(list2)    # [10, 11, 12, 13, 14]

3,相关方法

① 列表.clear() - 删除列表中所有的元素

song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song.clear()
print(song)     # []

② 列表.copy() - 返回一个和原列表一样(长得一样)的新的列表,相当于列表[:]、列表+[]、列表*1。

song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song2 = song.copy()
print(song2)   # ['关山酒', '将故事写成我们', '身骑白马', '告白气球']

③ 列表.count(元素) - 返回元素在列表中出现的次数

nums = [34, 23, 23, 4, 5, 67, 8, 12, 4, 23]
print(nums.count(23))   # 3

④ 列表.extend(序列) - 将序列中的元素全部添加到列表中

song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song.extend(['counting star', '加州旅馆'])
print(song)    # ['关山酒', '将故事写成我们', '身骑白马', '告白气球', 'counting star', '加州旅馆']

⑤ 列表.index(元素) - 返回元素在列表中的下标(这儿的下标是0开始的下标值),如果元素有多个,只返回最前的元素的下标。如果元素不存在,报错!

print(song.index('关山酒'))   # 0
print(song.index('身骑白马'))   # 2

⑥ 列表.reverse() - 列表逆序

song = ['关山酒', '将故事写成我们', '身骑白马', '告白气球']
song.reverse()
print(song)

⑦ 列表.sort() 列表.sort(reverse=True)

nums = [90, 89, 67, 29, 789, 2]
nums.sort()
print(nums)    # [2, 29, 67, 89, 90, 789]

nums = [90, 89, 67, 29, 789, 2]
new_nums = sorted(nums)
print(nums)   # [90, 89, 67, 29, 789, 2]
print(new_nums)     # [2, 29, 67, 89, 90, 789]

4,字典

① 字典是容器型数据类型,将{}作为容器的标志,里面多个元素(元素都是键值对)用逗号隔开:{键1:值1, 键2:值2, 键3:值3,…}字典可变(支持增删改);字典是无序(不支持下标操作)字典的元素 - 必须是键值对。
键 - 必须是不可变的数据(一般使用字符串)、唯一的
值 - 任何类型的数据都可以,可以重复

② 查 - 获取字典的值

A 获取单个值
a. 字典[key] - 获取字典中指定key对应的值,如果key不存在会报错
b. 字典.get(key) - 获取字典中指定key对应的值,如果key不存在不报错并且返回None
c. 字典.get(key, 默认值)

B 遍历
for-in 遍历字典的是,变量取到的是字典的键

film = {'name': '肖生克的救赎', 'director': '弗兰克·德拉邦特', 'time': '1994'}
print(film['name'])   # 肖生克的救赎
print(film['time'])   # 1994
# print(film['age'])    # 报错:KeyError: 'age'

film = {'name': '肖生克的救赎', 'director': '弗兰克·德拉邦特', 'time': '1994'}
for x in film:
    print(x, film[x])

C 其他

dict1 = {x: x * 2 for x in range(6)}  # 用字典生成式生成一个字典
print(dict1)                # {0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10}
print(dict1.keys())         # 获取字典得所有键
print(dict1.values())       # 获取字典得所有值
print(dict1.items())        # 获取字典中所有得键值对

③ 增、改

字典[key] = 值 - 当key存在的时候就是修改;当key不存在的时候就是增加。

computer = {'price': 5432, 'brand': '联想'}
print(computer)

computer['color'] = '白色'
print(computer)    # {'price': 5432, 'brand': '联想', 'color': '白色'}

④ 删

A del 字典[key] - 删除字典中指定key对应的键值对。(key不存在报错)

B 字典.pop(key) - 取出字典中指定key对应的值

computer = {'price': 3000, 'brand': '联想', 'color': '白色'}
del computer['price']
print(computer)   # {'brand': '联想', 'color': '白色'}

computer = {'price': 3000, 'brand': '联想', 'color': '白色'}
price = computer.pop('price')
print(computer, price)   # {'brand': '联想', 'color': '白色'}  3000

5,字典的相关操作和方法

① in 和 not in 操作

# 字典的in和not in 判断的是某个key是否存在
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(10 in dict1)   # False
print('a' in dict1)  # True

② max、min、sum、sorted - 这些操作全部针对字典的key

③ dict

dict(序列) - 将序列转换成字典。
序列的要求:
a. 序列中的每个元素都是序列
b. 小序列有且只有两个元素
c. 小序列的第一个元素不可变

seq = ['ab', '12', 'c1']
print(dict(seq))    # {'a': 'b', '1': '2', 'c': '1'}

seq = [range(2), ['name', '小明']]
print(dict(seq))     # {0: 1, 'name': '小明'}

# 字典转列表,是将字典所有的键作为列表元素 (所有序列都可以转换成列表)
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(list(dict1))   # ['a', 'b', 'c']
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值