处理数据
- 元素从0开始编号(记住这一点很重要)
数据结构(计算机存储、组织数据的方式)
一、字符串、元组
必掌握
- 了解切片的格式(用冒号分隔):
- 元组名[start:end]:获取下标为start~end-1的元素。start不一定是0
- 元组名[ : end]:获取下标为0~end-1的元素,即前end个元素
- 元组名[start : ]:从start开始到最后一个元素
- 元组名[start : end :step ]:每次循环跳过step个元素
二、列表(难但是用的多)
跟元组的性质相似,但可以修改
【1】 实时改变列表元素值,用enumerate:
mylist =[12,332,342,232,1233]
for counter,x in enumerate(mylist):
print("Counter is",counter) #计数器,理解为下标
print("x is",x) #x代表mylist里面的元素
mylist[counter]=x*2 #将对应下标的元组的值修改为原来的两倍
print(mylist)
- 要打印下标及对应元素用enumerate(列举、枚举)
【2】排序用sort()
【3】增加元素到末尾用append()
【4】插入用insert()
【5】根据元素值删除用remove()
- 删除多个,先用count()计算个数
for x in range(0,mylist.count(11)): #count()会计算出有多少个11,循环就会有多少次
mylist.remove(11)
【6】根据下标删除用pop()
【7】找到元素的下标用index()
三、字典
- 为元素提供自定义的名称,从而不用数字来引用元素
- 增删改查操作
employees = {"Bob": 1234, "Steve": 3422, "Mike": 9012}
employees["john"] = 111 # 增:添加新的键值对
del employees["Steve"] # 删:用del单个删除Steve
employees["Bob"] = 12 # 改:修改Bob的值
print(employees)
# 输入一个名字,在字典中查找是否存在,存在则打印该变量的内容
text = input()
while text != "q": #可以持续查询,输入q退出查询
if (text in employees): # ()里的是一个表达式,加上括号看起来是一个整体仅此而已,有没有括号都可
print(employees[text])
else:
print("Not found")
text = input()
- 循环读取字典
#获取每个项目的键名和值
employees = {"Bob": 1234, "Steve": 3422, "Mike": 9012}
for name,number in employees.items(): #key放入name,value放入number
print("Call",name,"on",number)
数据和函数
- 让函数返回多个数据的最简方法就是用逗号分隔他们
def my_func():
return 50, 900
x, y = my_func() #返回的少可以直接用变量
print(x, y)
- 函数可以返回多个值/元组/列表/字典
def my_func():
return (10, 20, 30, 20, 40)
mytuple = my_func() #如果是列表就用[]、字典就用{}
for x in mytuple:
print(x, end=' ') # 每个元素之间用空格隔开
没有指定变量的函数
*:任意参数长度标记,即可编写接受不同参数数量的函数
def avarage(*numbers):
result = sum(numbers) / len(numbers)
return result
x = avarage(10, 20, 30)
print(x)
x = avarage(10, 20, 30, 40, 44)
print(x)
- 对于元组和列表,若想要传给函数,那必须在传递时加个*号
def avarage(*numbers): # 加了*就成了一个元组
result = sum(numbers) / len(numbers)
return result
mytuple = (10, 20, 30, 222) # 不能以参数的形式发送元组或列表
x = avarage(*mytuple) # 在发送给函数之前取出元组中的项目
print(x)
mylist = [1, 2, 3, 4, 5]
x = avarage(*mylist)
print(x)
总结 * 的作用
表示乘法、任意函数参数、元组/列表的拆解
相关函数总结
- 切片:左闭右开
- range():左闭右开
- random():只有randint()左闭右闭