欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Task4 列表

程序员文章站 2022-07-14 23:09:13
...

创建列表

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来。如[1,2,3,4,5]
列表索引从0开始

创建普通列表

number = [1, 2, 3, 4, 5 ]

创建混合列表

mix = [1,'呆呆',3.14,[5,6,7]]

创建空列表

empty = []

向列表添加元素

append()方法

append()方法向列表的尾部添加一个新的元素。

list.append(obj) obj是添加到列表尾部的对象

name = ['土同学','呆同学']
name.append('老铁')
print(name)
# 输出结果为name = ['土同学','呆同学','老铁']

append是属于list列表的方法,所以使用“.”作用域来限制。

extend()方法

extend() 函数用于在列表末尾用一个列表扩展另一个列表,它的参数是一个列表。

list.extend(seq) seq是 元素列表。

name = ['土同学','呆同学']
name.extend(['老铁','猪烧鱼','啤酒鸭'])
print(name)
#输出结果为['土同学', '呆同学', '老铁', '猪烧鱼', '啤酒鸭']

insert()方法

insert() 函数用于将指定对象插入列表的指定位置。

list.insert(index, obj) index是插入的索引位置,obj是要插入列表的对象

现有一个列表

name = ['土同学','呆同学']

要想将’老铁’插入到第一个位置,不应该写
name.insert(1,‘老铁’)
而是
name.insert(0,‘老铁’)
因为列表的索引从0开始

name = ['土同学','呆同学']
name.insert(0,'老铁')
print(name)
#输出结果为['老铁', '土同学', '呆同学']

从列表中获取元素

还是name这个列表

name = ['老铁', '土同学', '呆同学']
print(name[0])
#输出结果: 老铁

利用列表分片一次性获取多个元素

list[start,stop] #start为开始的索引值,stop为结束的索引值

name = ['土同学', '呆同学', '老铁', '猪烧鱼', '啤酒鸭']
print(name[1:3])
#输出结果:['呆同学', '老铁']
print(name)
#输出结果:['土同学', '呆同学', '老铁', '猪烧鱼', '啤酒鸭']

↑说明列表分片得到的是列表的拷贝,并不改变原列表的值

print(name[1:])

↑结果是从索引为1(即第二个元素)到最后一个元素

print(name[:3])

↑结果是从索引为0(即第一个元素)到第3个元素

print(name[:])

↑结果是得到了列表的拷贝,从第一个元素到最后一个元素

list[start:stop:step]

若step=-1,相当于将列表反向

name = ['土同学', '呆同学', '老铁', '猪烧鱼', '啤酒鸭']
print(name[1:4:2])
#输出结果:['呆同学', '猪烧鱼']

从列表删除元素

remove()

list.remove(obj)

remove() 函数用于移除列表中某个值的第一个匹配项。

name = ['老铁', '土同学', '呆同学']
name.remove('土同学')
print(name)
#输出结果:['老铁', '呆同学']

pop()

用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

list.pop()

要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。

del 语句

不是函数也不是方法

del name[1] #删除单个对象
del name #删除整个列表
del name[0,2] #删除索引第0-2的对象

列表常用操作符

比较操作符

“>” “<”

list1 = ['a','b','c']
list2 = ['z','x','y']
print(list1<list2)
#输出结果:True

逻辑操作符

“==”

list1 = ['a','b','c']
list2 = ['z','x','y']
print(list1==list2)
#输出结果:False

只有成员、成员位置都相同时返回True

连接操作符

“+”

list1 = ['a','b','c']
list2 = ['z','x','y']
print(list1+list2)
#输出结果:['a', 'b', 'c', 'z', 'x', 'y']

“+”两边对象类型要一致

重复操作符

“*”

list1 = ['a','b','c']
print(list1*3)
#输出结果:['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

成员关系操作符

in
not in

list1 = ['a','b','c']
print('a' in list1)
#输出结果:True
list1 = ['a','b','c']
print('c'not in list1)
#输出结果:False

count()方法

list.count(obj)

index()方法

①list.index(x)
②list.index(x, start)
③list.index(x, start, end)

x-- 查找的对象。
start-- 可选,查找的起始位置。
end-- 可选,查找的结束位置。

该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。

reverse()方法

list.reverse()

对列表的元素进行反向排序。

sort()方法

list.sort(cmp=None, key=None, reverse=False)

cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。

练习题

1、列表操作练习

lst = [2,5,6,7,8,9,2,9,9]
lst.append(15)
lst.insert(4,20)
lst.extend([2,5,6])
lst.pop(3)
lst=lst[::-1]
lst.sort()
lst.reverse()
print(lst)

2、lst = [1, [4, 6], True]
将列表里所有数字修改成原来的两倍

lst = [1,[4,6],True]

def Ye(lst):
    for i,value in enumerate(lst):

        if isinstance(value,bool):
            continue
        if isinstance(value, int):
            lst[i] = lst[i] * 2
        if isinstance(value,list):
            Ye(value)
Ye(lst)
print(lst)

附:
Python 定义函数使用 def 关键字

def 函数名(参数列表):
函数体

3、
还没整明白

相关标签: 作业 python