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()

输出结果:

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值