乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
列表与元组

一、列表的格式

li = [1,2,3,4,"张三","李四"]
  • 列表可以一次性存储多个数据,且可以为不同数据类型

二、列表的常用操作

  • 列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查。

(一)查找

1、根据下标查找

li = ["张三","李四","王五"]
print(li[0])
print(li[1])
print(li[2])

------------------------
张三
李四
王五

2、函数

(1)index():返回指定数据所在位置的下标。

  • 注意:如果数据不存在则报错。
# 列表序列.index(数据,开始位置下标,结束位置下标)
li = ["张三","李四","王五","赵六"]
print(li.index("张三",0,2))

--------------------
0

(2)count():统计指定数据在当前列表中出现的次数。

li = ["张三","李四","王五","赵六"]
print(li.count("张三"))

----------------------------------
1

(3)len():访问列表长度,即列表中数据的个数。

li = ["张三","李四","王五","赵六"]
print(len(li))

-------------------------------------
4

(4)in与not in

  • in:判断指定数据在某个列表序列,如果在返回True,否则返回False
  • not in :判断指定数据不在某个列表序列,如果不在返回True,否则返回False
li = ["张三","李四","王五","赵六"]
name = input("请输入您要搜索的名字:")
if name in li:
    print(f"您输入的名字是{name},名字已经存在!")
if name not in li:
    print(f"您输入的名字是{name},名字不存在!")

 

(二)增加

1、append():列表结尾追加数据。

li = ["张三","李四","王五","赵六"]
li.append("路飞")
print(li)

-------------------------------------
['张三', '李四', '王五', '赵六', '路飞']
  • 如果append()追加的数据是一个序列,则追加整个序列到列表
li = ["张三","李四","王五","赵六"]
lis = ["","","打篮球"]
li.append(lis)
print(li)

---------------------------------
['张三', '李四', '王五', '赵六', ['', '', '打篮球']]

2、extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表。

li = ["张三","李四","王五","赵六"]
li.extend("路飞")
print(li)

---------------------------------
['张三', '李四', '王五', '赵六', '', '']
  • 如果添加一个序列,则会将序列里面每一个元素添加进去
li = ["张三","李四","王五","赵六"]
lis = ["","","打篮球"]
li.extend(lis)
print(li)

-----------------
['张三', '李四', '王五', '赵六', '', '', '打篮球']

3、insert():指定位置新增数据。

li = ["张三","李四","王五","赵六"]
li.insert(1,"路飞")
print(li)

-----------------------------------
['张三', '路飞', '李四', '王五', '赵六']

(三)删除

1、del

(1)删除整个列表

li = ["张三","李四","王五","赵六"]
del li
print(li)

----------------------------
NameError: name 'li' is not defined

(2)删除指定数据(根据索引删除)

li = ["张三","李四","王五","赵六"]
del li[1]
print(li)

-----------------------------
['张三', '王五', '赵六']

# 也可以选则性删除
li = ["张三","李四","王五","赵六"]
del li[1:3]
print(li)
---------------------------
['张三', '赵六']

2、pop():

  • 删除指定下标的数据(默认为最后一个),并返回该数据。
li = ["张三","李四","王五","赵六"]
li.pop(1)
print(li)

-------------------------------
['张三', '王五', '赵六']

3、remove():

  • 移除列表中某个数据的第一个匹配项。
li = ["张三","李四","王五","赵六"]
li.remove("张三")
print(li)

------------------------
['李四', '王五', '赵六']

4、clear():

  • 清空列表
li = ["张三","李四","王五","赵六"]
li.clear()
print(li)

----------------------
[]

(四)修改

1、直接修改

li = ["张三","李四","王五","赵六"]
li[0] = "路飞"
print(li)

------------------------------
['路飞', '李四', '王五', '赵六']

2、reverse()逆置

# 把顺序倒过来
li = [1,5,2,8,6,9,4] li.reverse() print(li) ------------------------- [4, 9, 6, 8, 2, 5, 1]

3、sort()排序

  • reverse表示排序规则,reverse=True降序,reverse = False升序(默认)
# 列表序列,sort(reverse=False)
li = [2,3,5,6,1,4,8]
li.sort(reverse=False)
print(li)

-------------------------
[1, 2, 3, 4, 5, 6, 8]


li.sort(reverse=True)
print(li)

------------------------
[8, 6, 5, 4, 3, 2, 1]

(五)复制

  • copy():复制一个列表
li = ["张三","李四","王五","赵六"]
li2 = li.copy()
print(li2)

------------------------------
['张三', '李四', '王五', '赵六']

三、列表的循环遍历

  • 依次打印列表中的各个数据

(一)for循环

li = ["张三","李四","王五","赵六"]
for i in li:
    print(i)

------------------------------------
张三
李四
王五
赵六

(二)while循环

i = 0
li = ["路飞","索隆","山治","娜美"]
while i < len(li):
    print(li[i])
    i+=1

-------------------------------
路飞
索隆
山治
娜美

四、列表的嵌套

  • 所谓列表嵌套指的就是一个列表里面包含了其他的子列表
# 找到篮球
li = [['张三','李四','阿坤'],['', '','篮球'],['','','','']]
# 第一步:按照下标查找到篮球所在的列表
print(li[1])
# 第二步:从篮球所在的列表里面,再按下标找到数据篮球
print(li[1][2])


----------------------------------------
['', '', '篮球']
篮球

五、元组

(一)定义元组

  • 定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型
# 多个数据元组
t1 = (10,20,30)
print(t1)
print(type(t1))
# 单个数据元组
t2 = (10,)
print(t2)
print(type(t2))

-----------------------------------------------
(10, 20, 30)
<class 'tuple'>
(10,)
<class 'tuple'>
  • 注意:如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型。
t3 = (10)
print(t3)
print(type(t3))

------------------------
10
<class 'int'>

(二)元组的常见操作

  • 元组数据不支持修改,只支持查找,具体如下

1、根据下标查找

tuple = ('aa','bb','cc','dd')
print(tuple[0])

--------------------------
aa

2、index():

  • 查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同
tuple = ('aa','bb','cc','dd')
print(tuple.index('aa'))

------------------------
0

3、count()

  • 统计某个数据在当前元组出现的次数
tuple = ('aa','bb','cc','dd')
print(tuple.count('aa'))

-----------------------------
1

4、len()

  • 统计元组中数据的个数
tuple = ('aa','bb','cc','dd')
print(len(tuple))

-----------------------------
4

5、元组内的直接数据如果修改则立即报错

  • 但是如果元组里面有列表,修改列表里面的数据则是支持的。
tuple = (10,20,['aa','bb','cc','dd'],30,40)
print(tuple[2])   # 访问到列表
tuple[2][0] = '路飞'
print(tuple)

----------------------
['aa', 'bb', 'cc', 'dd']
(10, 20, ['路飞', 'bb', 'cc', 'dd'], 30, 40)
  • 若元组内直接修改则会报错,但通过转变数据类型的方法进行修改
tuple = (1,2,3,4,5)
t1 = list(tuple)
print(t1)
print(type(t1))
t1[0] = '路飞'
print(t1)

------------------------
[1, 2, 3, 4, 5]
<class 'list'>
['路飞', 2, 3, 4, 5]

 

posted on 2022-09-28 22:28  乐之之  阅读(39)  评论(0编辑  收藏  举报