1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python 列表 元组_python基础:元组(tuple)列表(list)介绍

python 列表 元组_python基础:元组(tuple)列表(list)介绍

时间:2024-07-24 16:07:18

相关推荐

python 列表 元组_python基础:元组(tuple)列表(list)介绍

一,元组

1.元组的创建(可以把元组看作一个容器,任何数据类型都可以放在里面)

通过赋值方法创建元组

In [5]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},)

In [6]: type(t)

Out[6]: tuple

In [7]: t = (1)

In [8]: type(t)

Out[8]: int

In [9]: t = (1,) #定义单个元组,一定要在这个元组后面加","

In [10]: type(t)

Out[10]: tuple

通过工厂方法创建元组

In [15]: t = tuple("hello")

In [16]: type(t)

Out[16]: tuple

2.元组的操作

索引

In [17]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},)

In [18]: print t[0] #正向索引

hello

In [19]: print t[-1] #反向索引

{1: 'hello', 2: 'world'}

In [20]: print t[4][1] #取索引值为4的字典中key为1的value

hello

---------------------

切片

In [24]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},)

In [25]: print t[2:4] #只取索引为2,3的元素

(2, True)

In [26]: print t[::-1] #逆转元组的元素

({1: 'hello', 2: 'world'}, True, 2, 2.3, 'hello')

---------------------

连接

In [33]: t = (1,1.2,True,"hello")

In [34]: t1 = ((True,"hello",1),1+2j)

In [35]: print t1+t

((True, 'hello', 1), (1+2j), 1, 1.2, True, 'hello')

重复

In [39]: t = (1,1.2,True,"hello")

In [40]: print t*2 #自己指定重复次数

(1, 1.2, True, 'hello', 1, 1.2, True, 'hello')

成员操作符(这里常用于一些判断语句)

In [41]: t = (1,1.2,True,"hello")

In [42]: "hello" in t

Out[42]: True

In [43]: "hello" not in t

Out[43]: False

3.元组的常用方法

count()

括号里是元组的value,返回这个value出现的次数,若是该value不在这个元组内,则返回0

In [60]: t = (1,2,3,4,4,"hello")

In [61]: t.count(4) #统计4出现的次数

Out[61]: 2

In [62]: t.count(6)

Out[62]: 0

---------------------

4.元组可用的内置方法

cmp()

两个元组间第一个元素ASCII码的比较,左边大于右边的元组,返回1,左边小于右边的元组,则返回-1,若是左右两边元组相等,则返回0

In [83]: cmp(("a",12),(1,2))

Out[83]: 1

max()

同上,但返回的是值大的元组

In [85]: max(("hello",2),(3,4))

Out[85]: ('hello', 2)

min()

同上,但返回的是值小的元组

In [86]: min(("hello",2),(3,4))

Out[86]: (3, 4)

枚举的使用

采用元组套元组的方式,存储成绩信息:

scores = (

("Math",90),

("English",91),

("Chinese",93.1)

)

利用枚举和for循环输出信息

print "科目编号\t科目名称\t\t成绩"

for index,value in enumerate(scores):

print "%3d\t\t%s\t\t%.2f" %(index,value[0],value[1])

结果

科目编 科目名称 成绩

0 Math 90.00

1 English 91.00

2 Chinese 93.10

zip()

令元组a的元素和元组b的元素一一对应,若是两个元组的元数个数不等,则以元素少的元组为标准,一一匹配完为止

In [99]: subjects = ("chinese","math","english")

In [100]: scores = (93.1,90)

In [101]: print zip(subjects,scores)

[('chinese', 93.1), ('math', 90)]

---------------------

二,列表(list)

列表是打了激素的数组,因为数组只能存储同一种数据类型的结构,而列表可以存储是可以存储多种数据类型的结构

1.定义列表

In [103]: li = [(1,2,3),"hello", [True,"world",666],1.2]

In [104]: print li

[(1, 2, 3), 'hello', [True, 'world', 666], 1.2]

In [105]: type(li)

Out[105]: list

---------------------

2.列表的操作(和元组比较)

索引(类似于元组,不赘述)

In [111]: li = [(1,2,3),"hello", [True,"world",666],1.2]

In [112]: print li[2][0]

True

列表是可变数据类型,可以修改元素

In [106]: li = [(1,2,3),"hello", [True,"world",666],1.2]

In [107]: li[0] = 1 #令列表索引值为0的元素变为1

In [108]: li #列表被修改

Out[109]: [1, 'hello', [True, 'world', 666], 1.2]

---------------------

元组是不可变数据类型,不可以修改元素

In [110]: t =(0,1)

In [111]: t[0] = 1 #报错,如下图

切片(类似于元组,不赘述)

连接(类似于元组,不赘述)

重复(类似于元组,不赘述)

成员操作符(类似于元组,不赘述)

列表的增删改查

append()追加元素到列表的最后

# ip 白名单

allow_ip = ["172.25.254.1","172.25.254.3", "172.25.254.26" ]

allow_ip.append("172.25.254.250")

print allow_ip

执行效果:

['172.25.254.1', '172.25.254.3', '172.25.254.26', '172.25.254.250']

---------------------

insert()增加元素到列表的指定位置

allow_ip = ["172.25.254.1","172.25.254.3", "172.25.254.26" ]

allow_ip.insert(0, "192.168.1.253")

执行效果:

['192.168.1.253', '172.25.254.1', '172.25.254.3', '172.25.254.2

6', '172.25.254.250']

---------------------

extend()增加多个元素到列表最后

# ip 白名单

allow_ip = ["172.25.254.1","172.25.254.3", "172.25.254.26" ]

allow_ip.extend(["172.25.254.45", "172.25.56.21"])

执行效果:

['192.168.1.253', '172.25.254.1', '172.25.254.3', '172.25.254.2

6', '172.25.254.250', '172.25.254.45', '172.25.56.21']

---------------------

1.删除列表中遇到的第一个 value 值,如果该value值不存在,则报错

#语法格式:li.remove(value)

li = [1,2,45,6,8,0,1]

li.remove(1)

print li

执行效果:

[2, 45, 6, 8, 0, 1]

2.删除列表中第 i 个索引值;

#语法格式: del li[index]

li = [1,2,45,6,8,0,1]

del li[5]

print li

执行效果:

[1, 2, 45, 6, 8, 1]

test:删除除了第一个元素之外的其他索引值

li = [1,2,45,6,8,0,1]

del li[1::]

print li

执行效果:

[1]

3.根据索引删除一个元素,并返回该元素,如果括号内没有值,默认删除最后一个元素,若是超过范围的index,则报错

#语法格式:li.pop(index)

li = [1,2,45,6,8,0,1]

li.pop(1)

print li

运行效果:

[1, 45, 6, 8, 0, 1]

4.删除列表对象

li = [1,2,45,6,8,0,1]

del li

---------------------

1.统计某个元素在列表中出现的次数

li = [1,2,45,6,8,0,1]

print li.count(1)

运行效果:

2

2.找到某个值在列表中的索引值

li = [1,2,45,6,8,0,1]

print li.index(1,1) #value值为1,该值范围的起始索引为1

运行效果:

6

---------------------

# 通过列表的索引,对列表某个索引值重新赋值

li = [1,2,45,6,8,0,1]

li[1] = True

print li

运行效果:

[1, True, 45, 6, 8, 0, 1]

sort() — 排序

若都是数字,按照数字大小排序 ;若是字母的话,按照 ASCII 码来排序;

ps:查看对应的 ASCII 码 ? ord(‘a’)

li = [1,2,45,6,8,0,1]

li.sort()

print li

运行效果:

[0, 1, 1, 2, 6, 8, 45]

---------------------

reverse()—逆转

我们实现逆转除了前面讲的切片方式,也可以使用改方法

li = [1,2,45,6,8,0,1]

li.reverse()

print li

运行效果:

[1, 0, 8, 6, 45, 2, 1]

/zxy15771771622/article/details/79004224

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。