列表 元组 集合 字典
列表
什么是我们日常生活中经常见到的清单。比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单。由于我们买一种东西可能不止一次,所以清单中是允许有重复项的。如果我们扩大清单的范围,那么这也是一个清单,但这个清单里会有类别不同的项,交水电费也是一种花费,这些项的类型是可以使不同的。python的列表个跟清单的道理是一样的,特点就是:可重复,类型可不同。类型不同也是跟数组最本质的区别了。python里的列表用“[]”表示:
names1=['zhangsan','lisi','wangermazi','zhaosi',['phone',1000],'wangwu']
#列表读取
a=names1[1] #listname[position],根据位置取内容
print(a)
b=names1.index('zhaosi') #index根据内容找位置
print(names1[0]) #打印下标为0的值
print(names1[1]) #打印下标为1的值
print(names1[-1]) #打印下标为-1的值(倒数第一个)
#切片 ":"右边不包含左边包含
print(names1[:])#全部打印
print(names1[:3])#打印下标是0到下标为3的值,不包含3
print(names1[:-1])#打印到倒数第二位
print(names1[1:-1])#打印下标为1到倒数第二位
print(names1[::-1])#倒序打印
print(names1[::2])#间隔为2打印全部列表
print(names1[::2])#间隔为2打印全部列表
#列表写入
#列表追加 append
names1.append('Hello world')
print(names1)
#列表插入insert
names1.insert(0,'wanneng') #插入位置,值
print(names1)
#修改
names1[0]='Wanneng'
print(names1)
#删除del
del names1[0] #删除位置
print(names1)
#remove
print(names1)
names1.remove('zhaosi') #删除zhaosi如果有多个删除第一个
print(names1)
#pop() 默认删除最后一个值,可写明位置
print(names1)
names1.pop(-1) #删除位置编号为-1的值
print(names1)
#扩展extend()
name1=[1,2,3,]
name2=[3,4,5]
name1.extend(name2)
print(name1)
#列表拷贝
name1=[1,2,3,]
name2=[3,4,5]
name3=name1.copy()
name3.append(7)
print(name3)
print(name1)
#列表值统计
name4=name1.extend(name2)
print(name4)
# print(name4.count(3)) #统计3的个数
#列表排序(字符串和数字混合不能排序,尴尬不)
name4.append('7')
name4.sort() #正序排序
# line 74, in <module>
# names1.sort()
# TypeError: '<' not supported between instances of 'list' and 'str'
name4[-1]=7
print(name4)
name4.reverse()#反序
print(name4)
#获取下标index
print(names1)
print(names1.index('lisi'))
元组
#写法,元组只能查询 #tuple_1=('value1','value2','value3')
list1=(1,2,3,4,3,'make','kobe')
print(list1)
print(list1.index(3)) #index方法
print(list1.count(3)) #count方法
集合
集合就是我们数学学的集合,没有什么特殊的定义。集合最好的应用是去重。集合没有特殊的表示方法,而是通过一个set函数转换成集合
lst = [ 1, 1, 0]
lst_set = set(lst) #lst_set 为1 , 0
print(lst_set)
tup = (2, 2, 1)
tup_set = set( tup) # tup_set为2 , 1
print(tup_set)
#
for item in lst_set:
print(item)
字典
#字典写法
data={
1:11,
2:22,
3:33,
4:{
4:401,
4:{402:4002
},
},
'china':'中国',
'chinas':['中国'],
}
data[2]='葫芦娃'
print(data.get(2))
#字典的写法 {key:value},key必须是唯一的.
#dict 增加
data[22]='葫芦娃'
data[5]='葫芦娃'
data[2]='葫芦娃'
print(data)
#dict 修改
data[2]='222'
print(data)
#dict 删除
data.pop(4) #pop删除key值为4的数据组
del data[2] #del删除key2
data.popitem() #随机删除
print(data)
#dict查找
print(data.get(1)) #获取key为1的内容,get的值如果不存在返回None
print(4 in data) #key 4在不在data字典里面
print(data['china']) #获取key为china的内容,如果key不存在则会报错
print(data.keys())
#修改
data['chinas'][0] +='longyao'#值修改为['中国longyao'],值为数组
# data['chinas'] = 'longyao1' #值修改成longyao1
print(data)
#setdefault
data.setdefault(1,'allen') #创建一个key jp 值allen的条目,如果key存在则不发生改变
print(data)
#
data2={
'a':'aa',
'b':'bb',
3:'cc',
}
data.update(data2) #如果两个字典中有重复的后者覆盖之前的没有的就合并
print(data)
#item 字典变成列表
print(data.items())
#fromkeys初始化一个字典
a=dict.fromkeys([10,9,3],[11,22,'dac']) #初始化一个新的字典(value都是相同的)key 1 2 3 value是[11,22,'dac']
a[10][1]='33333' #这种方法创建的字典由于内存共享修改的后的单个value会全部更改。
print(a)
___________________________
#练习1
创建列表data2
data2={
'a':'aa',
'b':'bb',
3:'cc',
}
打印key 和value的值
for i in data2:
print(i,'-----',data2[i])
2.
#转换成列表把key和value分别赋值给列表的下标0和1
for i,x in data2.items():
print(i,x)
3.
#enumerate获取行号
for x,y in enumerate(data2.items(),1): #默认从0开始,本例从1开始计数
print(x,y[0],y[1])
练习2
引用for循环if。。。else循环,while ,数组,列表
1.创建列表格式是 商品名称:商品价格
2.对着写商品进行增删改查
#__Author: Playon
#__Date: 2016/3/12 12:05
#-*- coding:utf-8 -*-
product={
'苹果':'6',
'栗子':'25',
'鸡蛋':'2.5',
'花菜':'26',
'phone':'6000',
'pen':'16',
}
def price():
#price change
choice = input('Please input change goods:')
if choice in product:
price_new=input('Please input %s new price:'%choice)
product[choice]=price_new
else:
print('Goods %s do not exist!'%choice )
def goods_add():
#goods add
choice = input('Input new goods name:')
price = input('Input new goods price:')
if choice in product:
print(choice ,'existed')
else:
product[choice]=price
def goods_del():
# goods del
choice = input('Input delete goods:')
if choice in product:
del product[choice]
else:
print('%s not existed!')
while True:
num = 1 #定义商品序号从1开始
for goods in product:
print('\033[1;34;m%s.%s\t\t%s\033[0m'%(num,goods,product[goods])) #按照指定格式打印商品
num +=1
#选择操作类型
choice_plan= input(
"""\033[0;33;m############## 请选择 ################
# a---添加商品选择 a #
# e---编辑商品选择 e #
# d---删除商品选择 d #
# q---退出系统选择 q #
#####################################\033[0m""")
if choice_plan == 'a':
goods_add()
elif choice_plan == 'e':
price()
elif choice_plan == 'd':
goods_del()
elif choice_plan == 'q':
break
else:
print('Choice Error!')
continue
Please input pen new price:89
1.苹果 6
2.栗子 25
3.鸡蛋 2.5
4.花菜 26
5.phone 6000
6.pen 89
############## 请选择 ################
# a---添加商品选择 a #
# e---编辑商品选择 e #
# d---删除商品选择 d #
# q---退出系统选择 q #
#####################################