Python组合数据类型之列表

  • Post author:
  • Post category:python



三门语言同时学习的快乐谁懂?

———– dly

概念

一系列的按特定顺序排列的元素组成;内置的可变序列;使用[]定义,元素之间用逗号隔开;其中的元素可以是

任意数据类型。

对比c\c++中的数组,我们知道有整型数组,字符串数组和指针类型的数组,他们其中的类型必须是相同的,而python允许不同数据类型在同一个列表中。

创建与删除


–使用[]直接创建:


–使用内置方法list()创建:


–del+列表名称

输出与性质

1.列表的输出是带着[]的。

2.列表与序列类似,可以进行*输出,也可以两个列表相加成一个列表进行输出。同样max,min,.count()等操作可以使用。

3.注意使用内置list创建列表时内容可以是range函数而使用[]创建法则不可以(*错误1)。而且使用[]创建时里面的元素可以是很多个,而list创建时

只能有一个。

什么意思呢list的特点是可以将其他的数据类型转化为列表,但不能将列表转化为列表,就是说不能把[]定义的列表变成用list定义的列表(*例子1)。

*错误1

*例子1

列表的遍历输出

前两种比较简单直接上代码:

# 第一种简单使用循环遍历
a = ['hello', 'c++', 'java']
for i in a:
    print(i)

# 第二种结合range函数和len函数,根据索引遍历
for i in range(len(a)):
    print(a[i])

第三种是使用循环与enumerate()函数组合,enumerate()函数的作用是对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。可以看出如果我们要输出序号和元素内容时,使用该函数是最方便的,而且序号是可以改变的。

# 序号默认情况下
a = ['hello', 'c++', 'java']
for index, item in enumerate(a):
    print(index, item)

# 序号重新定义,可从任意数开始
for index, item in enumerate(a , 1):
    print(index, item)

输出结果:

0 hello
1 c++
2 java
-------------------------------------------------------------------------------------------
1 hello
2 c++
3 java


列表的相关操作


内容的操作

先列个大纲:



解释几个最常用的,首先是append()操作。我们可以直接最后添加一个元素,也可以在规定位置添加,被添加位置的元素往后顺延:

a = ['hello', 'c++', 'java']
a.append('python')#直接添加
print(a)
a.insert(1,'c')#指定位置添加
print(a)

输出结果:

['hello', 'c++', 'java', 'python']
['hello', 'c', 'c++', 'java', 'python']

排序

排序方法与c/c++相同,若为数字则直接根据大小排序;若为字符串则根据ASCII码进行排序。

–列表对象的sort()方法。解释变量:如果reverse的bool值为False(或者不写),则进行升序排序;为True则为降序排序。

–列表内置sorted()函数,此方法将产生一个新的列表对象,原列表顺序不变。既然产生新的,则必然需要一个新的变量来接收,所以基本格式为:

new_lis = sorted(old_lis)

同时也可以忽略大小写对字符串进行排序。

new_lis = sorted(old_lis ,key = str.lower)

列表生成式/推导式

–生成指定范围内的数值列表。注意,for循环前面的是表达式,既然是式子,它可以是一个变量,也可以是一个

函数生成式。

解释一下item就是一个变量,可以取到range里面的值,亦可以依靠range产生数的数量控制你需要数的数量,例如下面b中取随机数。

import random

a = [item for item in range(1, 11)]
print(a)

b = [random.randint(1, 100) for _ in range(10)]
print(b)

c = [item*item for item in range(1, 11)]
print(c)

输出结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[13, 81, 48, 10, 61, 87, 7, 82, 68, 27]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

–从列表中选择符合条件的元素组成新的列表

# 取得数列中的偶数
a = [item for item in range(1, 11) if item % 2 == 0]
print(a)

*二维列表

二维列表的创建方式,既然要分别输出,那就需要两个循环:

a = [
    ['姓名', '成绩', '排名'],
    ['张三', '100', '1'],
    ['李四', '98', '2'],
]
# 直接输出
print(a)
# 按照先行后列输出
for row in a:
    for item in row:
        print(item, end='\t')
    print()

输出结果:



版权声明:本文为qq_62272360原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。