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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM