程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【python基礎】內置數據結構—列表和元組

編輯:Python

列表和元組

  • 一、列表的基本特性
  • 二、列表的常用方法
    • (1)、增加
    • (2)、修改
    • (3)、刪除
  • 三、元組
    • (1)、元組的創立
    • (2)、元組的特性
    • (3)、常用方法
    • (4)、查看
  • 四、命名元組
  • 五、深拷貝和淺拷貝

一、列表的基本特性

1、連接操作符

print([1,2]+[2,3])
print([1,2]*3)
#結果
[1, 2, 2, 3]
[1, 2, 1, 2, 1, 2]

2、成員操作符

print(1 in [1,2,3])
print(0 in ['a',False,[1,2]])
#結果
True
True $因為這裡bool值的False=0,Ture=1

3 、索引

li = [1,2,3,[1,'b',3]]
print(li[0])
print(li[-1])
print(li[-1][0])
#結果
1
[1, 'b', 3]
1

4、切片

li = ['172','25','254','100']
print(li[:2])
print(li[1:])
print(li[::-1])
#結果
['172', '25']
['25', '254', '100']
['100', '254', '25', '172']

5、練習題
將列表li = [‘172’,‘25’,‘254’,‘100’]輸出為100-254-25

#方法1
li = ['172','25','254','100']
print('-'.join(li[1:][::-1]))
#方法2
li = ['172','25','254','100']
print('-'.join(li[3:0:-1])) $這裡是倒序,可以看作是(0:3],然後再倒序

6、 for 循環

names = ["粉絲","粉條","粉帶"]
for name in names:
print(f'{
name}')
#結果
粉絲
粉條
粉帶

二、列表的常用方法

(1)、增加

1、追加

li = [1,2,3]
li.append(4)
print(li)
#結果
[1, 2, 3, 4]

2、列表開頭追加

li= [1,2,3]
li.insert(0."cat")
print(li)
#結果
['cat', 1, 2, 3]

3、列表中間追加
li= [1,2,3]
li.insert(2,“cat”)
print(li)
#結果
[1, 2, ‘cat’, 3]

4、一次追加多個

li= [1,2,3]
li.extend([4,5,6])
print(li)
#結果
[1, 2, 'cat', 3]

(2)、修改

1、修改,通過索引或者切片
方法一通過索引

li= [1,2,3]
li[0]='hello'
li[1]='westos'
print(li)
#結果
['hello', 'westos', 3]

方法二通過切片

li= [1,2,3]
li[:2]=['cat','westos']
print(li)
# 結果
['cat', 'westos', 3]

3、查看:通過索引和切片查看元素。查看索引值和出現次數

li=[1,2,2,2,3,4]
print(li.count(1)) $統計次數
print(li.index(3)) $統計索引的地址
#結果
1
4

(3)、刪除

1、根據索引刪除
pop代表探彈出的意思

li = [1,2,3]
print(li.pop(1))
print(li)
# 結果
2
[1, 3]

2、根據value值刪除

li = [1,2,3]
li.remove(3)
print(li)
#結果
[1, 2]

3、全部清空

li = [1,2,3]
li.clear()
print(li)
#結果
[]

4、反轉

li = [1,2,3,4]
li.reverse()
print(li)
#結果
[4, 3, 2, 1]

5,排序

li = [1,3,7,4]
li.sort()
print(li)
#結果
[1, 3, 4, 7]

三、元組

(1)、元組的創立

1、元組的創立
空元組

t1=()
print(t1,type(t1))
#結果
() <class 'tuple'>

注意:單個元素不算元組

t2=(1)
print(t2,type(t2))
#結果
1 <class 'int'>

元組裡面可以有多種類型

t3=(1,2,True,[1,2,3,4])
print(t3,type(t3))
#結果
(1, 2, True, [1, 2, 3, 4]) <class 'tuple'>

(2)、元組的特性

print((1,2,3)+(3,)) 拼接
print((1,2,3)*3) 重復
print(3 in (1,2,3)) 判斷
#結果
(1, 2, 3, 3)
(1, 2, 3, 1, 2, 3, 1, 2, 3)
True
t=(1,2,3)
print(t[0]) 索引
print(t[-1])
print(t[::-1]) 反轉
print(t[1:3]) 分片
#結果
1
3
(3, 2, 1)
(2, 3)

(3)、常用方法

元素是不可變數據

(4)、查看

t = (1,23,3,424,2,2,2,3)
print(t.count(2))
print(t.index(2))
#結果
3
4

四、命名元組

from collections import namedtuple 從 collections工具箱裡面導入其中的namedtuple工具
User = namedtuple('User',('name','age','city')) 使用namedtuple創建命名元組對象User
User1 = User('westos','18','xian')
print(User1)
print(User1.name)
print(User1.age)
print(User1.city)
#結果
User(name='westos', age='18', city='xian')
westos
18
xian

五、判斷

python語言:
==:是判斷類型和值是否相等
is:查看地址是否相同

print(1 == "1")
#結果
False 因為類型不同
li = [1,2,3]
li1= li.copy()
print(li==li1)
#結果
Ture
li = [1,2,3]
li1= li.copy()
print(li==li1)
print(li is li1)
print(id(li),id(li1))
#結果
False 因為地址不同
1956102874048 1956102814272

五、深拷貝和淺拷貝

1.值的引用
因為指向相同的存貯地址,所有相同

nums1 = [1,2,3]
nums2 = nums1
nums1.append(4)
print(nums2)
#結果
[1, 2, 3, 4]

2、可變數據類型與不可變數據類型
可變數據類型:list
不可變數據類型;str,tuple,namedtuple

3、淺拷貝
拷貝出來的存放在不同的地址
.copy和[:]都是淺拷貝

n1 = [1,2,3]
n2 = n1.copy()
print(id(n1),id(n2))
n1.append(4)
print(n2)
#結果
1800894875712 1800894754048
[1, 2, 3]

3、淺拷貝的補充
注意:如果有列表嵌套,如果要拷貝的時,一定要用深拷貝

n1 = [1,2,[1,2]]
n2 = n1.copy()
n1[-1].append(4)
print(n2)
print(id(n1),id(n2))
print(id(n1[-1]),id(n2[-1]))
#結果
[1, 2, [1,2,4]]
1800894881024 1800894875712
1800894746432 1800894746432

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved