Python之列表,元组,字典

一、列表

列表定义及格式 定义: 列表是一个可修改的,元素以逗号分割,以中括号包围的有序序列。
格式: 变量名=[元素1,元素2,元素3,…]

list = [4,1,3,5,5]
list1 = ['唐僧','猪八戒','沙僧','孙悟空']

由于列表是序列的一种,列表支持所有的我们对字符串所讨论过的序列操作。唯 的区别就是其结果往往是列表而不是符串。 我们能够对列表进行相加、重复、索引 、切片,循环遍历等操作,就像对字符 串所傲的操作那样。

列表相加:

list1 = [1,2,3]
list2 = [4,5,6]
list1+list2 #[1,2,3,4,5,6]

列表相乘:

list1 = [1]
list2 = list1*4 #[1,1,1,1]

获取元素:

names = ['张三','李四','王老五']
print(names[1]) #李四

#遍历:
for i in names:
	print(names)

多个变量接受元素:

a,b = ['张三','李四']
print(a) #张三
print(b) #李四

#置换
c = a
a = b
b = c
print(a,b)
#序列解包: 可以使用 ”*变量名” 这种格式来接受多个元素值。并且和位置无关。
lst1, *lst2 = ['a','b','c','d']
print(lst1) #a
print(lst2) #['b','c','d']

列表类型特有方法 不同的类型有自己不同的操作方法。对列表的操作有增删改查四种操作。
(1) .增加操作
append 追加,在列表的尾部加入指定的元素
extend 将指定序列的元素依次追加到列表的尾部(合并),不会去重复内容
insert 将指定的元素插入到对应的索引位上,注意负索引倒序插入,超过索引就会在末尾插入

#append
a = [12,15,18]
a.append(9) #[12,15,18,9]
#extend 等价于 a+b
b = [12]
b.extend(a) #[12,12,15,18]
#insert
c = [1,2]
c.insert(1,5)#[1,5,2]

(2) .删除操作
pop 弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据(从右向左删除)
remove 从左往右删除一个指定的元素
del 删除整个列表或列表的数据,del是python内置功能,不是列表独有的

a = [1,2,3]
a.pop() #[1,2]
a.remove(2) #[1]
del a #没了

(3) .修改操作
lists[index] lists[index]=’xxx’,通过索引修改内容
reverse 顺序倒序
sort 按照ascii码表顺序进行排序
修改使用索引 lists[0]=’xx’

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(4) .查找操作
count 计数,返回要计数的元素在列表当中的个数
index 查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

a = [1,5,9,9,2,4,6,1,9]
print(a.count(9)) #3
print(a.index(4)) #5
print(a[5]) #4

超出列表末尾之外的索引总是会导致错误,对列表末尾范围之外赋值也是如此。

列表嵌套 :
列表嵌套指的是列表中可以多层次的嵌套列表。
在这里插入图片描述

二、元组

元组是一个不可修改的,元素以逗号分隔的以小括号包围的有序序列, 可以将元组看成一个不可修改的列表。
格式: 变量名=(元素1,元素2,…)

tup = (5,7,9,4,3,2,)
#访问
print(tup[1]) #7
print(tup[1:5:1]) #(7,9,4,3)
for i in tup:
	print(i)
#合并
tup1 = (1,3,5)
tup2 = (2,4,6)
print(tup1+tup2) #(1, 3, 5, 2, 4, 6)
#多维访问
tups = ((2,4,6,),(1,3,5),(11,15,18),(13,16,17))
print(tups[1][2]) #5
#使用多个变量接受元组中的值 
name,age = ('张三','18')
print(name) #张三
ptint(age) #18
#修改元组 
#说明:Python中不允许修改元组的数据,包括不能删除其中的元素。 如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

在这里插入图片描述

元组一个逗号魅力

tup = (1) #<'class int'>
tup1 = (1,) #<class 'tuple'>
#tup()函数
tup2 = 'family'
tup3 = tuple(tup2) #('f','a','m','i','l','y')

元组中的方法
index 从左往右返回第一个遇到的指定元素的索引,如果没有,报错
count 返回元组当中指定元素的个数
在这里插入图片描述

#元组求和
a=(1,2,3,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
c = 0
for b in a :
    c+=b
print(c)

#输出元组内奇偶数的个数
c = (1,2,3,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
a = 0
b = 0
for i in c:
    if c[i-1]%2==0:
        a += 1
    else:
        b += 1
print(a)
print(b)

三.字典

我们可能见过这种这种类型name=’赵四’, age=18 或者 name:’赵四’, age:18age=18或者age:18,这种格式的数据结构我们称之为映射(mapping), 映射指的是可以通过名字 age 引用 值 18。一般将’age’ 叫做键(key) ‘18’叫做值 (value)。整体我们称之为键值对。 在Python中保存这种键值对格式的数据的一种类型叫做字典 dict。 字典是Python中唯一内建的映射类型。
在这里插入图片描述

#创建字典
message = {'name':'亚瑟','age':'34','hight':'1.83'}
#注意:字典的key 不能是可修改数据类型,例如列表就不能当字典的key。 value 可以是任意数据类型。
#(1) .增加操作 
#变量名[key]=value 通过key 添加value值,如果key存在则覆盖 
#setdefault(key,default_value ) 指定key和value,如果key存在则覆盖
message['name'] = '张三'
message.setdefault('weiht',55)
#(2) .删除操作 
#pop     弹出,返回并删除指定键对应的值
#popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
#clear   清空字典
a={'name':'fxx','age':18,'height':1.75}
print(a)
print(a.pop('name'))
print(a.popitem())
print(a.clear())
#(3) .修改操作 
#变量名[key]=value 通过key 添加value值,如果key存在则覆盖
#update() 传递一个字典,如果key相同则覆盖,没有的key则添加
a={'name':'fxx','age':18,'heiht':1.75}
b={'wight':66}
a.update(b) #{'name': 'fxx', 'age': 18, 'heiht': 1.75, 'wight': 66}
(4) .查找操作 
keys 	返回一个包含字典所有key的列表
values 	返回一个包含字典所有vaule的列表
get 	以键取值,如果指定键不存在,默认返回None,可以指定返回内容
update 	以字典格式更新指定键的内容,如果键不存在,创建键和值
items 	返回字典键值呈元组形式的格式
len 	测量字典,键值对的个数(整体

在这里插入图片描述

for …in … 通过for … in …:的语法结构,我们可以遍历字符串、列 表、元组、字典等数据结构。
not in 判断指定的键是否不在字典当中
在这里插入图片描述
dict()函数 dict内置函数可以创建一个空字典、或者通过列表+元组的形式或者元组+元组形 式创建一个字典,或者通过关键字来创建一个字典
在这里插入图片描述

#购物车:
import time as wait
money = int(input("请输入你的余额:"))
product_list = [{'name': '苹果', 'price': 10},
            {'name': '榴莲', 'price': 30},
            {'name': '草莓', 'price': 20},
            {'name': '菠萝', 'price': 15},]
for sp in product_list:
    wait.sleep(0.2)
    print(product_list.index(sp),product_list[product_list.index(sp)]['name'],product_list[product_list.index(sp)]['price'])
    #购买:
while True:
    x = int(input("购买编号为:"))
    y = int(input("购买数量为:"))
    print('购物车:')
    if -1<x<product_list.index(sp)+1:
        if 0<product_list[x]['price'] * y<money:
            num =  product_list[x]['price']*y
            money = money - num
            print('购买的水果为{},数量为{},剩余{}钱'.format(product_list[x]['name'],y,money))
        elif product_list[x]['price'] * y>money:
            print("您钱不够了")
            break
        else:
            print('您的钱用光了!')
            break
    else:
        print("输入有误,请重新输入!")

请输入你的余额:500
0 苹果 10
1 榴莲 30
2 草莓 20
3 菠萝 15
购买编号为:1
购买数量为:5
购物车:
购买的水果为榴莲,数量为5,剩余350钱
购买编号为:0
购买数量为:5
购物车:
购买的水果为苹果,数量为5,剩余300钱
购买编号为:3
购买数量为:5
购物车:
购买的水果为菠萝,数量为5,剩余225钱
购买编号为:2
购买数量为:10
购物车:
购买的水果为草莓,数量为10,剩余25钱
购买编号为:0
购买数量为:3
购物车:
您钱不够了
爱,就是你和某个人一起经历的一切。
原文地址:https://www.cnblogs.com/afly-8/p/13561156.html