python列表、元组、集合、字典介绍

列表 元组 集合 字典


列表

什么是我们日常生活中经常见到的清单。比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单。由于我们买一种东西可能不止一次,所以清单中是允许有重复项的。如果我们扩大清单的范围,那么这也是一个清单,但这个清单里会有类别不同的项,交水电费也是一种花费,这些项的类型是可以使不同的。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的值

1.

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
View Code

 

 

 

 

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        #
#####################################

 

posted @ 2019-06-12 16:35  PlayOn  阅读(1282)  评论(1编辑  收藏  举报