python基础_Day03

列表

列表:用于存储任意数目、任意类型的数据集合。
列表是内置可变序列,是包含多个元素的有序连续的内存空间。
Python 的列表大小可变,根据需要随时增加或缩小。

创建

>> a = [10,20,'gaoqi',sxt']
>> a = [] #创建一个空的列表对象
# 使用 list()可以将任何可迭代的数据转化成列表。
>> a = list() #创建一个空的列表对象
>> a = list(range(10)
>> a
[0, 1 2, 3 4, 5 6, 7 8, 9]
>> a = list("gaoqi,sxt")
>> a
['g', 'a', 'o', 'q', 'i','s','x','t']
# 使用list(range())创建列表
>> list(range(3,15,2))
[3, 5 7, 9 11, 13]
>> list(range(15,3-1))
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
>> list(range(3,-10,-1))
>[3, 2 1, 0 -1, -2, -3, -4, -5, -6, -7, -8, -9]


append方法

>> a = [20,40]
>> a.append(80)
>> a
[20, 40, 80]
# +运算增加,不推荐因为会开辟新地址储存
>> a = [20,40]
>> id(a)
46016072
>> a = a+[50]
>> id(a)
46015432

extend方法

>> a = [20,40]
>> id(a)
46016072
>> a.extend([50,60])
>> id(a)
46016072

insert方法

>> a = [10,20,30]
>> a.insert(2,10)
>> a
[10, 20, 10, 30]

乘法扩展

>> a = ['sxt',10]
>> b = a*3
>> a
['sxt', 10]
>> b
['sxt', 10, 'sxt', 10, 'sxt', 10]


del删除

>> a = [10,20,8,30,40]
>> del a[1]
>> a
[10,20,30,40]

pop()方法

>> a = [10,20,30,40,50]
>> a.po()
50
>> a
[10, 20, 30, 40]
>> a.po(1)
20
>> a
[10, 30, 40]

remove方法

>> a = [10,20,30,40,50,20,30,20,30]
>> a.remove(20)
>> a
[10, 30, 40, 50, 20, 30, 20, 30]
>> a.remove(10)
Traceback (most recnt calast):
File "<pyshel#208>", line 1, in <module>
a.remove(10)
ValueEror: list.remove(x): not in list

列表排序
排序会返回一个新列表而不会修改原来的列表

>> a = [20,10,30,40]
>> id(a)
4601608
>> a = sorted(a) #默认升序
>> a
[10, 20, 30, 40]
>> id(a)
4590784
>> a = [20,10,30,40]
>> id(a)
45840584
>> b = sorted(a)
>>> b
[10, 20, 30, 40]
>> id(a)
45840584
>> id(b)
46016072
>> c = sorted(a,revrse=True) # 降序
>> c
[40, 30, 20, 10]

revrsed()返回迭代器

>> a = [20,10,30,40]
>> c = revrsed(a)
>> c
<list_revrseitratorbject a 0x0002BCEB8>
>> list(c)
[40, 30, 10, 20]
>> list(c)
[]


通过索引直接查询

>> a = [10,20,30,40,50,20,30,20,30]
>> a[2]
30
>> a[10]
Traceback (most recnt calast):
File "<pyshel#21>", line 1, in <module>
a[10]

查看指定元素首次出现的索引

>> a = [10,20,30,40,50,20,30,20,30]
>> a.index(20)
1
>> a.index(20,3)
5
>> a.index(20,3) #从索引位置 3 开始往后搜索的第一个 20
5
>> a.index(30,57) #从索引位置 5 到 7 这个区间,第一次出现 30 元素的位置
6

count()获得指定元素在列表中出现的次数

>> a = [10,20,30,40,50,20,30,20,30]
>> a.count(20)
3

len()返回列表长度

>> a = [10,20,30]
>> len(a)
3

切片操作

[10:20:30][start:end:step]
# -1 则指从结尾开始数的第一个元素

列表的复制

# list2 和 list1 持有地址值是相同的,列表对象本身的元素并没有复制。
list1 = [30,40,50]
list2 = list1

# 通过如下简单方式,实现列表元素内容的复制
list1 = [30,40,50]
list2 = [] + list1

列表其他内置函数汇总

max和min
用于返回列表中最大和最小值。

[40, 30, 20, 10]
>> a = [3,10,20,15,9]
>> max()
20
>> min(a)
3

sum

对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。

>> a = [3,10,20,15,9]
>> sum(a)
57

元组

元组元素不可修改

创建

  1. 通过()创建元组。小括号可以省略。
    a = (10,20,30)
    或者 a = 10,20,30
    如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数 1,(1,)
    解释为元组。
>> a = (1)
>> type(a)
<clas 'int'>
>> a = (1,) 
#或者 a = 1, 
>> a = (1,) 
<clas 'tuple'>
  1. 通过 tuple()创建元组
    tuple(可迭代的对象)
    例如:
b = tuple() 
#创建一个空元组对象
b = tuple("abc")
b = tuple(range(3)
b = tuple([2,34])

>> a = (20,10,30,98)
>> a[1]
10
>> a[1:3]
(10, 30)
>> a[:4]
(20, 10, 30, 9)

其他内置函数

sorted

>> a = (20,10,30,98)
>> sorted(a)
[8, 9 10, 20, 30] # 返回新列表

zip

>> a = [10,20,30]
>> b = [40,50,60]
>> c = [70,80,90]
>> d = zip(a,bc)
>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]

生成器推导创建元组

>> s = (x*2 for x in range(5)
>> s
<genratorbject <genxpr> at 0x0002BDEB48>
>> tuple(s)
(0, 2 4, 6 8)
>> list() 
#只能访问一次元素。第二次就为空了。需要再生成一次
[]
>> s
<genratorbject <genxpr> at 0x0002BDEB48>
>> tuple(s)
()
>> s = (x*2 for x in range(5)
>> s._next_()
0
>> s._next_()
2
>> s._next_()
4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值