Python学习笔记-Day4

时间:2022-12-31 12:58:04

今日大纲

一、列表和列表的常用方法

二、元组

三、range()

 

 

一、列表和列表的常用方法

列表是python的基础数据类型之一,其他语言中也有列表的概念,例如在JS中叫数组。列表相比于字符串,不仅可以存储各种数据类型,还存储大量的数据类型,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。

列表是有序的,有索引值,可切片,方便取值。

例如:

list = ['alex',100,True,[1,2,3],{'name':'taibai'},(22,33)]

1、列表的索引

列表的索引与字符串相同,都是索引、切片、步长

例如:

list=['alex',100,True,[1,2,3],{'name':'taibai'},(22,33)]
print(list[0],type(list[0]))
print(list[1],type(list[1]))
print(list[:4])

#输出结果:
#alex <class 'str'>
#100 <class 'int'>
#['alex', 100, True, [1, 2, 3]]

2、列表的增、删、改、查、其他方法

(1)列表的增(3种方法)

  append():在列表的最后追加,没有返回值

  insert():根据位置增加

  extend():在列表的最后追加,按照最小单元形式

例如:

l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1.append([1,2,3])
# print(l1.append([1,2,3]))#没有返回值,因为l1.append([1,2,3])是一个过程
print(l1)

输出结果:
['alex', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天', [1, 2, 3]]
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1.insert(1,'抱怨')#在位置1前加入
print(l1)

输出结果:
['alex', '抱怨', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天']
1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1.extend('abc')#['alex','wusir','taibai','egon','景女神','文周','日天','a','b','c']
l1.extend([111,222,333])#['alex','wusir','taibai','egon','景女神','文周','日天',111,222,333]
l1.extend(['alex','wusir'])#['alex','wusir','taibai','egon','景女神','文周','日天','alex','wusir']

 

(2)列表的删(4种方法)

  pop():按照索引的位置删除,有返回值,返回值是被删除的元素

  remove():按照元素删除

  clear():清空

  del():① 按照索引的位置删除

                  ②按照切片和步长删除

                  ③全部清空

#pop()
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1.pop(0)
print(l1.pop(0))  # 有返回值,返回值是删除的内容
print(l1)
输出结果是
wusir
['taibai', 'egon', '景女神', '文周', '日天']

#remove
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1.remove('alex')
print(l1)
输出结果是:
['wusir', 'taibai', 'egon', '景女神', '文周', '日天']

#clear
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1.clear()
print(l1)
输出结果是:
[]

#del  从内存上删除
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
del l1
print(l1)
输出结果是:
出错,NameError: name 'l1' is not defined

#del 按索引删除
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
del l1[0]
print(l1)
输出结果是:
['wusir', 'taibai', 'egon', '景女神', '文周', '日天']

#del 按照切片删除
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
del l1[0:2]
print(l1)
输出结果是:
['taibai', 'egon', '景女神', '文周', '日天']

#del 按照切片+步长删除
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
del l1[::2]
print(l1)
输出结果是:
['wusir', 'egon', '文周']

 

 (3)改:直接用=将更改的内容赋值给被更改的内容

  ①按索引更改

  ②按切片更改:可在切片位置放任意多个参数

  ③按切片加步长更改:只能按照切片宽度放置参数个数

#按索引更改,一次只能更改一处
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1[0] = 'abc'
print(l1)
输出结果:
['abc', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天']

#按切片更改
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1[:4]=[11,22,33,44,55,66]
print(l1)
输出结果是:
[11, 22, 33, 44, 55, 66, '景女神', '文周', '日天']

#按切片加步长更改
l1=['alex','wusir','taibai','egon','景女神','文周','日天']
l1[:4:2]=[11,22]
print(l1)
输出结果是:
[11, 'wusir', 22, 'egon', '景女神', '文周', '日天']

 

(4)查

  查询方式有两种,①按照索引查;②用for循环

 

 (5)其他方法

  其他方法就是和字符串的其他方法类似

  len():求数组的长度

  count():求数组种某个元素的个数

  index():通过元素找索引,数组不能用find()

  sort():排序

l2 = [1, 4, 5, 9, 5]
l2.sort()  # 数字从小到大
l2.sort(reverse=True)  # 数字从大到小
l2.reverse()  # 反转

 

 

二、元组

tu1=('alex','wusir',['taibai',99,'ritian'],20)

1、查询方式:与列表相同

2、可使用index、count、len

3、应用场景:一些非常重要的数据不允许任何人修改就放在元组种。

4、元组的儿子不能修改,但是孙子可以修改

例如:

tul1=('alex','wusir',['taibai',99,'ritian'],20)
#tul1[0]='namsahn'#元组里儿子不允许修改
tul1[2][0]=123#元组里的孙子辈可以增删改
tul1[2].append('a')
print(tul1)

输出结果:
('alex', 'wusir', [123, 99, 'ritian', 'a'], 20)

 

 

三、range

自定制数据范围的可迭代对象,可以类比成列表,只是和for循环结合使用

例如:

for i in range(1, 20, 2):     #打印1~20之间的奇数
    print(i)

for i in range(10, -1, -1):      #反向步长,打印10`0
    print(i)

例题:

#打印列表中的索引值
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天']
for i in l1:
    print(l1.index(i))  # 方法1:列表中不能有重复的元素

for i in range(0, len(l1)):  # 方法2:列表中可以有重复的元素
    print(i)

 

 

 

 

 

 

 

 

 

元组是只读列表,只允许查询,不允许增、删、改