python基础回顾

Python 基础 - List 和Dict

Python 数据类型 - List

list 是Python内置高级数据类型,是有序集合。

names = ["lizzie", "hello", "sunny"]
print("names 的数据类型:", type(names))
print(names)
# names 的数据类型: <class 'list'>
# ['lizzie', 'hello', 'sunny']

len()获取List的长度,即所包含元素的个数

n = len(names)
print(n)
# 3

空的list,长度为0

empty_list = []
print(len(empty_list))
# 0

访问List中的值。
1)通过for 循环访问

print(names[0])
# lizzie
     获取最后一个元素,用-1;获取倒数第二个元素,用-2。
print(names[-1])
print(names[-2])
# sunny
# hello

2)通过for 循环访问

for name in names:
    print(name)
for i in range(len(names)):
    print(names[i])
 # lizzie
 # hello
 # sunny
 # lizzie
 # hello
 # sunny

list 的增删查改操作,函数及方法。
1)List 添加元素: append() 和 insert()
append()是在list的末尾添加元素;
insert()是在指定位置添加元素。

names.append('Json')
print(names)
names.insert(2, 'Nicole')
print(names)
# ['lizzie', 'hello', 'sunny', 'Json']
# ['lizzie', 'hello', 'Nicole', 'sunny', 'Json']

2)List 删除操作 : pop(), pop(i)
pop() 方法删除 list 末尾的元素;
pop(i) 方法删除指定位置的元素.

print(names.pop())
print(names)
print(names.pop(0))
print(names)
# Json
# ['lizzie', 'hello', 'Nicole', 'sunny']
# lizzie
# ['hello', 'Nicole', 'sunny']

3)修改list的元素:直接通过list的索引赋值

names[2] = 'Bessie'
print(names)
#['hello', 'Nicole', 'Bessie']

列表操作符:+ 和 *
+相当于拼接列表; * 相当于重复列表
还可以判断元素是否存在于列表中

print("列表相加:", [1, 2, 3] + ["a", "b"])
print("列表相乘:",  ['a', 'b'] * 3)
# 列表相加: [1, 2, 3, 'a', 'b']
# 列表相乘: ['a', 'b', 'a', 'b', 'a', 'b']
print("判 断 元 素 是 否 存 在 于 列 表 中 :", 'a' in ['a', 'b'])
print("判 断 元 素 是 否 存 在 于 列 表 中 :", 'a' not in ['a', 'b'])
# 判 断 元 素 是 否 存 在 于 列 表 中 : True
# 判 断 元 素 是 否 存 在 于 列 表 中 : False

列表函数和方法:
函数包括:

  • len(list),列表元素个数,即列表的长度
  • max(list),返回列表最大值
  • min(list),返回列表最小值
  • list(sep), 将元组转化成列表
    方法包括:
    list.count(object),统计某个元素在列表中出现的次数
    list.extend(seq),在列表末尾一次性追加另一个序列的多个值
    list.index(object),在列表中找出某个值第一个匹配的索引位置
    list.sort(), 对原列表进行排序
    list.reverse(),对原列表进行方向排序
list1 = [1, 34, 2, 4, 3, 3, 9, 3]
list2 = [0, 5, 3, 45, 10]
tuple1 = (2, 4, 8)
# 列表函数
print("列表最大值:", max(list1))
print("列表最小值:", min(list1))
print("将元组转化为列表:", list(tuple1))
# 列表方法
print("count:", list1.count(3))
list1.extend(list2)
print("extend:", list1)
print("index:", list1.index(3))
list2.remove(3)
print("remove", list2)
list2.sort()
print("sort:", list2)
list2.reverse()
print("reverse", list2)
# 列表最大值: 34
# 列表最小值: 1
# 将元组转化为列表: [2, 4, 8]
# count: 3
# extend: [1, 34, 2, 4, 3, 3, 9, 3, 0, 5, 3, 45, 10]
# index: 4
# remove [0, 5, 45, 10]
# sort: [0, 5, 10, 45]
# reverse [45, 10, 5, 0]

列表的切片: list[start : end : step]

c_list = [0, 5, 3, 45, 10]
print(c_list[0:3])
print(c_list[::2])
print(c_list[1:3:2])
print(c_list[::-1])  # 逆序
print(c_list[::-2])
# [0, 5, 3]
# [0, 3, 10]
# [5]
# [10, 45, 3, 5, 0]
# [10, 3, 0]

列表推导式:
一般结构为 new_list = [x for x in iterable]

n_list = [x.lower() for x in "Lenmon"]
n1_list = [x**2 for x in [1, 2, 3, 5]]
n2_list = [x for x in range(7)]
print(n_list)
print(n1_list)
print(n2_list)
# ['l', 'e', 'n', 'm', 'o', 'n']
# [1, 4, 9, 25]
# [0, 1, 2, 3, 4, 5, 6]

两层for循环的列表推导式

n3_list = [x**2 + y for x in range(3) for y in range(3, 6)]
print(n3_list)
# [3, 4, 5, 4, 5, 6, 7, 8, 9]
dic = {'x': '1', 'y': '2', 'z': '4'}
n4_list = [k+'='+v for k,v in dic.items()]
print(n4_list) 
# ['x=1', 'y=2', 'z=4']

含有if 语句的列表推导式

if_list = [x**2 for x in range(8) if x%2==0]
print(if_list)
# [0, 4, 16, 36]
if_2_list =[x**2 for x in range(8) if x%2==0 if x%3==0]
print(if_2_list)
# [0, 36]

python 字典合并

1)dict1.update(dict2): 在dict1后叠加字典dict2,dict1是原字典与dict2合并之后的结果

x = {'a': 1, 'b': 2}
y = {'b': 4, 'c': 5}
z = x.update(y)
print(z)
print(x)
print(y)
# None
# {'a': 1, 'b': 4, 'c': 5}
# {'b': 4, 'c': 5}

2)new_dict = {**dict1, **dict2},适用于python3.5及以上

z1 = {**x, **y}
print(z1)
# {'a': 1, 'b': 4, 'c': 5}

3)自定义函数

def merge_dic(x,y):
    x1 = x.copy()
    x1.update(y)
    return x1
z2 = merge_dic(x,y)
print(z2)
# {'a': 1, 'b': 4, 'c': 5}

多个dict合并:使用自定义函数

def merge_multi_dict(*args):
    result={}
    for each_dict in args:
        result.update(each_dict)
    return result
zz={'d': 99, "e": 00}
merge= merge_multi_dict(x,y, zz)
print(merge)
# {'a': 1, 'b': 4, 'c': 5, 'd': 99, 'e': 0}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值