python3中数字类型有哪些_python全栈_009_Python3基本数据类型--列表(示例代码)

1:列表的介绍

列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 比如C++中的数组, java中的数组等等. 它是以[ ]括起来, 每个元素用‘ , ‘隔开,而且可以存放各种数据类型,列表是可变数据类型(即可以改变列表内存中的值)

lst = [1, 2, 3, 4]print(lst, id(lst))

lst= [1, 2, 3, 4] #重新创建一个列表

print(lst, id(lst))

lst[0]= ‘Hello‘ #修改第一个元素的值,修改之后内存地址是不会变的

print(lst, id(lst))

lst.append(‘2343423333dfsdfsdfsdfsd‘) #增加一个元素,列表内存地址也是不会变的

print(lst, id(lst))#列表中的元素可以是各种数据类型,可以是列表,字符串,数字,字典等等

lst = [False, ‘Haha‘, 1, "吼吼", [1, [‘23‘,89], 8,0,"百度"], ("我","叫", "元", "组"), "abc", {"我叫":"dict字典"},{"我叫集合","集合"}]print(lst)

列表相比于字符串. 不仅可以存放不同的数据类型。而且可以存放大量的数据。32位python可以存放: 536870912个元素, 64位可以存放: 1152921504606846975个元素.而且列表是有序的(按照你保存的顺序),有索引, 可以切片方便取值。

2:列表的索引与切片

2.1:列表和字符串一样也拥有索引:

#列表也有索引,索引从0开始

lst = [‘迈克尔·杰克逊‘, ‘苏有朋‘, ‘梁咏琪‘, ‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘中华人民共和国‘]print(lst[3]) #林志颖

print(lst[-1]) #中华人民共和国

print(lst[-1][2:4]) #人民

lst[2] = ‘helloWorld‘

print(lst) #[‘迈克尔·杰克逊‘, ‘苏有朋‘, ‘helloWorld‘, ‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘中华人民共和国‘]

s= ‘苏有朋‘

print(s)

s[0]= ‘林‘ #报错: TypeError: ‘str‘ object does not support item assignment

print(s)

2.2:列表的切片:

#切片,切片出来的是列表(什么类型切片出来的还是原来的类型)

lst = [‘迈克尔·杰克逊‘, ‘苏有朋‘, ‘梁咏琪‘, ‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘中华人民共和国‘]print(lst[1:3]) #[‘苏有朋‘, ‘梁咏琪‘]

print(lst[1:5:2]) #取 第1, 3 位的;输出 [‘苏有朋‘, ‘林志颖‘]

print(lst[-1:-4:-2]) #取 第-1, -3 位的;输出 [‘中华人民共和国‘, ‘张学友‘]

print(lst[2::-1]) #[‘梁咏琪‘, ‘苏有朋‘, ‘迈克尔·杰克逊‘]

#索引 与 切片 参考字符串的

3:列表的增删改查:

3.1:列表的增加操作:

增: 注意, list和str是不一样的,lst可以发生改变,所以直接就在原来的对象上进行了操作:

#新增#1:append,每次都在末尾添加元素

lst =[]

lst.append(‘林志颖‘)

lst.append(‘张学友‘)

lst.append(‘刘德华‘)

lst.append(‘张柏芝‘)print(lst) #[‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]

#2:insert

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]

lst.insert(2, ‘周杰伦‘) #在2号位置插入,即在‘刘德华‘位置插入,‘刘德华‘及后面的数据向后移动;插入的时候,可能会导致元素移动

print(lst) #[‘林志颖‘, ‘张学友‘, ‘周杰伦‘, ‘刘德华‘, ‘张柏芝‘]

#3:迭代添加:extend

lst = [‘刘德华‘, ‘张柏芝‘]

lst.extend(‘林志颖‘) #字符串为可迭代对象,会把字符串中的每个字符添加到列表中,输出: [‘刘德华‘, ‘张柏芝‘, ‘林‘, ‘志‘, ‘颖‘]

print(lst)

lst.extend([‘张学友‘]) #迭代列表, [‘刘德华‘, ‘张柏芝‘, ‘林‘, ‘志‘, ‘颖‘, ‘张学友‘]

print(lst)

3.2:列表的删除操作:

#删除: pop,remove,clear,del#1:pop : 按照索引来删除,默认删除最后一个

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]

s= lst.pop() #默认弹出最后一个,可以指定元素(索引)删除;返回删除的元素

print(s) #张柏芝

print(lst) #[‘林志颖‘, ‘张学友‘, ‘刘德华‘]

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]

s2= lst.pop(1) #输出1号为元素(‘张学友‘), 输出:[‘林志颖‘, ‘刘德华‘, ‘张柏芝‘]

print(lst)#2: remove,按照元素值来删除,删除时元素值要存在于列表中,不然会报错

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]

lst.remove(‘林志颖‘) #指定元素(元素值) 输出 : [‘张学友‘, ‘刘德华‘, ‘张柏芝‘]

print(lst)lst.remove(‘费玉清‘) # 报错 ValueError: list.remove(x): x not in list

print(lst)#3:clear,全部清空元素

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]print(lst,id(lst))

lst.clear()#元素全部清空,[]

print(lst,id(lst))#4:del 输出,指定索引来删除,也可以切片删除(即指定删除范围)

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]del lst[1] #指定元素(索引);[‘林志颖‘, ‘刘德华‘, ‘张柏芝‘]

print(lst)#可以切片删除

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘]del lst[0:2] #指定删除范围,输出:[‘刘德华‘, ‘张柏芝‘]

print(lst)

3.3:列表的修改操作:

#修改里面的元素

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]print(lst)#通过单个索引来修改

lst[2] = ‘梁咏琪‘

print(lst) #[‘林志颖‘, ‘张学友‘, ‘梁咏琪‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

lst= [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

lst[-3] = ‘蜘蛛侠3‘

print(lst) #[‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘蜘蛛侠3‘, ‘黄家驹‘, ‘周杰伦‘]

#通过切片来修改

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

lst[1:3] = ‘男儿本色‘

print(lst) #会迭代字符串 [‘林志颖‘, ‘男‘, ‘儿‘, ‘本‘, ‘色‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

lst= [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

lst[1:3] = [‘男儿本色‘]print(lst) #[‘林志颖‘, ‘男儿本色‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

#lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]#lst[1:5:2] = [‘男儿本色‘] #报错 ValueError: attempt to assign sequence of size 1 to extended slice of size 2#print(lst)

lst= [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]

lst[1:5:2] = [‘男儿本色‘,‘男儿本色2‘] #注意如果元素的步长不是1,那么元素的个数要匹配

print(lst) #[‘林志颖‘, ‘男儿本色‘, ‘刘德华‘, ‘男儿本色2‘, ‘黄家驹‘, ‘周杰伦‘]

3.4:列表的查询操作:

#列表是一个可迭代对象#列表的查询(或者说遍历)

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘]for item inlst:print(item)for index,item inenumerate(lst):print(index,item)

4:列表的相关操作:

4.1:列表中元素出现的次数:

#lst.count(元素) ;元素个数,第一层元素的个数,不比较子元素中的值

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘, ‘张学友‘]print(lst)print(lst.count(‘张学友‘)) #输出 2

lst = [‘张学友‘, ‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘, ‘张学友‘]print(lst.count(‘张学友‘)) #输出 3

lst= [‘张学友‘, [‘张学友‘], ‘林志颖‘, ‘张学友‘, ‘刘德华‘, ‘张柏芝‘, ‘黄家驹‘, ‘周杰伦‘, ‘张学友‘]print(lst.count(‘张学友‘)) #1号位为 [‘张学友‘],不是字符串 ‘张学友‘;输出 3

print(lst.count([‘张学友‘])) #输出 1

4.2:列表中元素的排序:

#列表的排序

lst = [3, 4, 9, 2,89,12]print(lst)

lst.sort()print(lst)#降序

lst = [3, 4, 9, 2,89,12]

lst.sort(reverse=True) #降序

print(lst)

4.3:列表中元素的反转:

#列表中元素的反转

lst = [3, 4, 9, 2,89,12]print(lst)

lst.reverse()print(lst)

4.4:列表中元素的长度

#其列表的长度

lst = [3, 4, 9, 2,89,12]print(len(lst))

4.5:列表中元素的下标

lst = [3, 4, 9, 2,89,12]print(lst.index(89)) #输出 4#print(lst.index(5)) # ValueError: 5 is not in list

5:列表的嵌套:

采用降维操作:一层一层的看就好。

#采用降维操作.一层一层的看就好.

lst = [‘林志颖‘, ‘张学友‘, ‘刘德华‘, [‘男儿本色‘, [‘吴孟达‘, ‘hello‘,‘周杰伦‘],‘功夫之王‘, ‘蜘蛛侠3‘]]print(lst)#找出‘吴孟达‘,并打印出来

print(lst[3][1][0])#hello 的首字母大写

lst[3][1][1] = lst[3][1][1].capitalize()print(lst)

6:range:

range可以帮我们获取到一组数据,通过for循环能够获取到这些数据。

for i in range(10): #0 到 9

print(i)for i in range(1,10,2):print(i) #1 3 5 7 9

for i in range(10,1,-2):print(i) #10 8 6 4 2

7:列表的其他操作:

7.1:Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python 表达式结果描述

len([1, 2, 3])

3

长度

[1, 2, 3] + [4, 5, 6]

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

组合

[‘Hi!‘] * 4

[‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘]

重复

3 in [1, 2, 3]

True

元素是否存在于列表中

for x in [1, 2, 3]: print x,

1 2 3

迭代

7.2:Python列表函数&方法

序号函数

1

cmp(list1, list2)

比较两个列表的元素

2

len(list)

列表元素个数

3

max(list)

返回列表元素最大值

4

min(list)

返回列表元素最小值

5

list(seq)

将元组转换为列表

Python包含以下方法:

序号方法

1

list.append(obj)

在列表末尾添加新的对象

2

list.count(obj)

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

3

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

4

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

5

list.insert(index, obj)

将对象插入列表

6

list.pop(obj=list[-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7

list.remove(obj)

移除列表中某个值的第一个匹配项

8

list.reverse()

反向列表中元素

9

list.sort([func])   list.sort(reverse=True)

对原列表进行排序

8:总结:

1:列表的定义:

能装对象的对象,由[]表示,由‘,‘隔开;是可变数据类型

索引和切片,从0开始

[start,end,step]

2:列表的增,删,改,查

1:新增:append(),insert(),extend()(迭代添加)

2:删除:pop(),remove(),clear(),del

3:改:索引修改,切片修改

4:查询:索引查询,for el in lst:

5:操作:count(),index(),find(),sort(reverse = true),reverse()

3:range()

range(10) # 0到 9

range(1,12) # 1 到 11

range(1,12,3) # 1 4 7 10

for el in lst: # 没有索引

for i in range(len(lst)):

lst[i]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值