列表
# 随机数导入
from random import randint
ls1 = [] # 空列表
for i in range(10):
ls1.append(i)
print(ls1)
ls2 = [] # 空列表
for i in range(10):
num = randint(40, 100) # [start, end] 随机整数
ls2.append(num)
print(ls2)
# 遍历 : 从容器中一个一个取出来
# 1 索引遍历
# 选出所有及格的同学并生成一个新的列表
jige_list = []
print("ls2 length", len(ls2)) # 元素个数
for i in range(len(ls2)):
if ls2[i] >= 60:
jige_list.append(ls2[i])
print("jige_list = ", jige_list)
# 2 迭代遍历
# for 临时变量 in 可迭代对象:
# 循环体
jige_list = []
for x in ls2:
if x >=60:
jige_list.append(x)
print(jige_list)
推导式
from random import randint
# 简化for 循环和列表的操作
# 语法
# [表达式 for 临时 in 迭代对象 if 条件]
print([i for i in range(10)])
print([i + 2 for i in range(10)])
print([i**2 for i in range(10)])
ls2 = [randint(40, 100) for _ in range(10)]
print(ls2)
print([score for score in ls2 if score >= 60])
# python 三目运算符
# 满足条件返回的值 if 条件 else 不 满足条件返回的值
a = 100
b = 999
# if a > b:
# print(a)
# else:
# print(b)
print(a if a > b else b)
元组
# 元组 tuple 不可修改的列表
t = (11, 111, "哈哈")
print(t)
print(type(t)) # <class 'tuple'>
# 访问
print(t[2])
# 修改
# t[0] = 199 TypeError: 'tuple' object does not support item assignment
# 列表直接的转化
print(tuple([i for i in range(10)]))
print(list(t))
# 遍历
for x in t:
print(x)
# 只有一个元素的元组
a = (100,)
print(type(a))
# 常做函数的返回值 , 安全
字典
# key-value数据结构 可以自定义索引的列表
stu_info = {'name': 'eric', 'age': 19, 'score': 99, 'addr': '铁岭的'}
print(stu_info)
print(type(stu_info)) #<class 'dict'>
print(len(stu_info))
# 访问 无序的 通过key 访问value
print(stu_info['name'])
#print(stu_info['gender']) # KeyError: 'gender'
print(stu_info.get('name'))
print(stu_info.get('gender')) #None
print(stu_info.get('gender', 'female')) # 可以设置默认值
# 修改
stu_info['age'] = 30
print(stu_info)
# 增加
stu_info['gender'] = "male"
print(stu_info)
# 删除
# del stu_info
# print(stu_info) : name 'stu_info' is not defined
del stu_info['addr']
print(stu_info)
stu_info.clear()
print(stu_info) # {} 空字典
字典的遍历
stu_info = {'name': 'eric', 'age': 19, 'score': 99, 'addr': '铁岭的'}
print(stu_info)
# 获取所有键
print(list(stu_info.keys()))
# 获取所有值
print(list(stu_info.values()))
# 获取所有键值
print(list(stu_info.items()))
print(dict([('name', 'eric'), ('age', 19), ('score', 99), ('addr', '铁岭的')]))
# 遍历
for item in stu_info.items():
print(item)
for k, v in stu_info.items():
print(k, v)
# 字典推导式
print({i: i for i in range(10)})
print({str(i): i for i in range(10)})
print({(i, ): i for i in range(10)})
切片
# 对序列(字符串/元组/列表)截取一部分的操作
name = "Python C++ Java"
ls = [111, 222, 333]
# 序列[start: end: step] 左闭右开
print(name[0:6])
print(name[:6])
print(name[7:])
print(name[:])
print(name[::2])
print(name[::-1]) # 右 --> 左
# 每一个值都会有两个索引, 负向索引从-1开始
print(name[-1])
print(name[-4:])
print(name[-1:-5:-1])
#
# ls3 = ls # 浅拷贝 会影响原数据
# ls2 = ls[:] # 深拷贝 对原数据无影响
# ls2[0] = 666
# ls3[0] = 666
# print(ls)