2021-06-22 Python快速学习3(列表,元组,字典)

列表list

Python的列表与其他语言的列表相似,可以:

  1. 容纳不同类型的数据
  2. 切割列表
  3. 拼接操作
  4. 直接改变其中元素(单个或者某区间元素),包含修改和移除
  5. 在末尾添加新项
  • 容纳不同类型的数据
    列表索引从0开始
# -*- codeing = utf-8 -*-
# @Time :2021/6/22 8:58
# @File : demo2.py
# @Author :Yannick Li
array=["Hello",'h',1,4,[3,5,"yzr"]]
print(array)
print(array[1])
print(array[len(array)-1])
print(array[len(array)-1][2])
--------------------
运行结果:
['Hello', 'h', 1, 4, [3, 5, 'yzr']]
h
[3, 5, 'yzr']
yzr
  • 获取列表元素和下标
    enumerate() :将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
str_list=["第一个元素","第二个元素","第三个元素","第四个元素"]
print("下标","value")
for i,str in enumerate(str_list):
    print(i,str)
---------------------
运行结果
下标 value
0 第一个元素
1 第二个元素
2 第三个元素
3 第四个元素
  • 切割列表
str1=["第一个元素","第二个元素","第三个元素","第四个元素"]
print(str1[1])
print(str1[-1])
print(str1[1:])
print(str1[-2:])
---------------------
运行结果
第二个元素
第四个元素
['第二个元素', '第三个元素', '第四个元素']
['第三个元素', '第四个元素']
  • 拼接操作
    可以直接用“ + ”对list进行拼接,也可以使用函数extend()在列表后方拼接。
str1=["nihao",1,3]
str2=str1+["China","good"]
str2.extend(["ex1","ex2"])
print(str2)
---------------------
运行结果
['nihao', 1, 3, 'China', 'good', 'ex1', 'ex2']
  • 直接改变其中元素(单个或者某区间元素),包含修改和移除
str1=["第一个元素","第二个元素","第三个元素","第四个元素"]
str1[1]="改变"+str1[1]
str1[2:]=["改变了1111","改变了2222","哈哈哈"]
print(str1)
str1[3:]=[]   #移除
print(str1)
del str1[0]   #删除第一个元素
print(str1)
str1.clear()	#全部清空
print(str1)
del str1	#删除列表
print(str1)	#此时列表不存在,会报错
---------------------
运行结果
['第一个元素', '改变第二个元素', '改变了1111', '改变了2222', '哈哈哈']
['第一个元素', '改变第二个元素', '改变了1111']
['改变第二个元素', '改变了1111']
[]
NameError: name 'str1' is not defined

删除列表某个值(不知道位置)remove(): listname.remove(values)

  • 在某个位置插入新项
list=["H","E","L","L","O"]
print(list)
list.insert(1,"success")
print(list)
---------------------
运行结果
['H', 'E', 'L', 'L', 'O']
['H', 'success', 'E', 'L', 'L', 'O']
  • 在末尾添加新项
str1=["第一个元素","第二个元素","第三个元素","第四个元素"]
str1.append("第五个元素")
print(str1)
---------------------
运行结果
['第一个元素', '第二个元素', '第三个元素', '第四个元素', '第五个元素']
  • pop():弹出一个元素,并且在原列表中删除(类似于栈中操作)
    list.pop():弹出list中最后一个元素并在列表中删除
    list.pop(n):弹出list中第n+1个元素并在列表中删除
list=["A","B","C","D","E"]
print(list)
x=list.pop(3) #pop()弹出一个元素,并且在原列表中删除(类似于栈中操作)
print(x)
print(list)
---------------------
运行结果
['A', 'B', 'C', 'D', 'E']
D
['A', 'B', 'C', 'E']

列表的其他方法:

  • 学过MATLAB的你应该知道MATLAB的矩阵操作有max() ,min() ,sum()等方法,在Python中同样适用。
str1=[1,5,3]
print(sum(str1))
---------------------
运行结果
9
  • 元素反转
str1=[1,5,3]
str1.reverse()
print(str1)
---------------------
运行结果
[3, 5, 1]
  • 排序
str1=[1,5,3]
str1.sort(reverse=True) #由大到小
print(str1)
str1.sort(reverse=False) #由小到大
print(str1)
---------------------
运行结果
[5, 3, 1]
[1, 3, 5]

元组tuple

元素表示:列表是用[] , 而元组用()
注意:元组中的元素不允许修改和删除元素,但是允许del (删除整个元组)和元组拼接,操作(如元素的获取)与列表一样。

  • 创建元组
tup1=()
print(type(tup1))
tup2=(3)    #()相当于一个运算符号,(3)就是3
print(type(tup2))
tup3=(3,)    #元组只有一个元素的时候需要加“,”作为元组标记
print(type(tup3))
---------------------
运行结果
<class 'tuple'>
<class 'int'>
<class 'tuple'>
  • 列表转换为元组
str1=[1,5,3]
print(str1)
str2=tuple(str1)
print(str2)
---------------------
运行结果
[1, 5, 3]
(1, 5, 3)
  • 新增(拼接)
tup1=(1,2,3)
tup2=("nihao","Hello")
tup=tup1+tup2
print(tup)
---------------------
运行结果
(1, 2, 3, 'nihao', 'Hello')
  • 删(只能删除整个元组)
tup2=("nihao","Hello")
print(tup2)
del tup2
print(tup2)
---------------------
运行结果
('nihao', 'Hello')
NameError: name 'tup2' is not defined

字典dict

字典是另一种可变容器模型,且可存储任意类型对象。

  • 格式
    字典的每个键值 (key=>value) 对用冒号 : 分割,每个对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
    注意:key必须唯一且不可变的,value不必唯一,且value可以是任意数据类型。
  • 字典的访问
kv={"Bob":"boy","Alice":"girl"}
print(kv["Bob"])#直接访问对应的键,没有则报错
print(kv.get("Bob"))#get方法:没有找到对应的键则默认返回None
print(kv.get("Helen","没找到"))#get(str1,str2),没找到返回str2
---------------------
运行结果
boy
boy
没找到
  • 字典修改内容
  1. 修改
kv={"Bob":"boy","Alice":"girl"}
kv["Bob"]="none"
print(kv["Bob"])
---------------------
运行结果
none
  1. 添加
kv={"Bob":"boy","Alice":"girl"}
kv["Helen"]="girl"
print(kv["Helen"])
---------------------
运行结果
girl
  • 删除字典元素
kv={"Bob":"boy","Alice":"girl"}
kv["Helen"]="girl"
del kv["Bob"] # 删除键 "Bob"
print(kv["Bob"])
kv.clear()     # 删除字典
del kv         # 删除字典
---------------------
运行结果
(结果报错,因为删除了键)
  • 其他函数
kv={"Bob":"boy","Alice":"girl"}
print(kv.keys())    #输出所有的键
print(kv.values())  #输出所有的值
print(kv.items())   #输出所有的元素
---------------------
运行结果
dict_keys(['Bob', 'Alice'])
dict_values(['boy', 'girl'])
dict_items([('Bob', 'boy'), ('Alice', 'girl')])
  • 遍历操作
kv={"Bob":"boy","Alice":"girl"}
for key in kv.keys():#获取键
    print(key)

for value in kv.values():#获取值
    print(value)

for key,value in kv.items():
    print(key+":"+value)
---------------------
运行结果
Bob
Alice
boy
girl
Bob:boy
Alice:girl

迭代器与生成器

迭代器:一个可以记住遍历的位置的对象

迭代器步骤:

  1. iter(list_name) ==> 创建基于列表的迭代器
  2. next(iter_name)==>获取迭代器的下一个元素

打印输出列表:

array=["Hello","World","good",2]
for it in array:
    print(it,end=" ")
print()

it=iter(array)
for x in it:
    print(x,end=" ")
print()

it_2=iter(array)
for i in range(len(array)):
    print(next(it_2),end=" ")
---------------------
运行结果
Hello World good 2 
Hello World good 2 
Hello World good 2 

生成器:一个返回迭代器的函数,只能用于迭代操作。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值。并在下一次执行 next() 方法时从当前位置继续运行。

例如:随机生成5个[1,50]的随机数并保存在迭代器中

import random

def getrandom():
    i=0
    while True:
        a=random.randint(1,50)
        yield a
        i+=1
        if i==5:
            break

random_it=getrandom()	#random_it是一个迭代器
for x in random_it:
    print(x,end=" ")
---------------------
运行结果
36 22 11 30 24 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值