程序员开发实例大全宝库

网站首页 > 编程文章 正文

Python基础-基本数据类型(下)——list

zazugpt 2024-08-27 23:58:13 编程文章 17 ℃ 0 评论

Python中列表(List)是一个非常强大的 '集合',它可以包罗万象,只要是符合Python基本数据类型的数据List都能装进去,还是有序的,而不像set那样只能装不可变类型数据,并且无序。

有关set集合特性请参看 Python基础-基本数据类型(下)--set

list栗子:

# coding:UTF-8

def data():

    list_data = [] # 初始化列表

    b = {'a': 1, 'b': 2} # 字典
    c = 2   # int
    d = 'data'  # string
    e = (1, 2)  # 元祖
    f = ['da']  # List
    g = {5}     # set
    h = 1.5     # float
    
    list_data.append(b)
    list_data.append(c)
    list_data.append(d)
    list_data.append(e)
    list_data.append(f)
    list_data.append(g)
    list_data.append(h)
    print(list_data)

if __name__ == '__main__':
    data()

# ===============================
# 输出:[{'a': 1, 'b': 2}, 2, 'data', (1, 2), ['da'], {5}, 1.5]

输出顺序和添加顺序保持一致

场景一:访问List中的元素

同基本数据类型string同理,List中元素同样有其下标(索引),先来看看string中的元素与下标之间的关系

要访问List中的元素数据,也可以使用下标来获取

# coding:UTF-8

def data():

    list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]]
    data01 = list_data[0]
    print(data01) # data
    print(type(data01)) # <class 'str'>
    
    data02 = list_data[-6]
    print(data02) # data
    print(type(data02)) # <class 'str'>
    
if __name__ == '__main__':
    data()

如果访问下标(索引)超出了列表的范围则会报索引越界错误

IndexError: list index out of range

然而当使用 list[a:b] 这样的方式去切列表的时候并不会报错

注:list[a:b] 中a为起始索引,b为截止索引,意思是取出索引从a开始一直到索引b终止的数据,不包含b索引数据,即左闭右开原则

类似于 list[0:9] 的形式。终止索引的值即使超过 list 的正向最大索引也不会报错的,当b大于正向最大索引时,可以理解为:

从起始索引一直截取到最后一个数据

list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]]
first_data = list_data[2:500] # 500大于最大索引值
print(first_data)

# 输出(并没有报错)
[(1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]]

# 开头不写默认从索引为0开始截取
first_data = list_data[:2] 
print(first_data)  # 输出 ['data', 55]

对于正向截取上述截取甚至可以写成 list_data[2:] 也是截取到最后一个元素的意思

对于负向索引截取时同理,都不会报错

需要注意的

对于 list[a:b] 截取和字符串类型的截取,在负向索引截取时有个不同点,string字符串负向索引截取时会截取到的为空,这点需要注意下

以下是字符串类型的截取规则

说白了就是,在对于List和string通过下标去截取时,只有在负向截取上有差异

list 负向截取超出最大索引时可以正常截取

string 负向截取超出最大索引时取道的为空


场景二:访问list中的元素并取得该元素的下标

对于访问集合类型数据,没有什么是for循环解决不了的,list数据也一样,通常通过for循环来顺序访问list中的元素:

list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]]
for i in list_data:
print(i)

# 输出 
data 
55 
(1, 2) 
{'a': 1, 'b': 2}
5.5
['da', 7]

上述这种只能循环出list中的元素,如果要顺带循环出每个元素的索引就需要使用enumerate函数

list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]]
for index, ele in enumerate(list_data):
print('索引' + str(index))
print(ele)

# 输出
索引0 
data  
索引1 
55 
索引2 
(1, 2) 
索引3 
{'a': 1, 'b': 2} 
索引4 
5.5 
索引5 
['da', 7]

以上就是有关list集合常用到的部分操作,更多list集合方法的实践操作请参考API文档

python-3.86 API文档手册 中文版.chm

https://wwi.lanzoui.com/iyu4Erjndgd
提取码:data

更多精彩内容请关注 公众号:数据与编程之美

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表