Python入门:列表

四、列表

本章内容运行环境:Jupyter Notebook
本单元视频链接:https://v.youku.com/v_show/id_XNDYyNDA0NTI4MA==.html

4.1 列表定义

列表是指 Python 中包含一组有序元素的对象

  • 列表以方括号[开头,以]结尾
  • 列表中的每个元素用 ,隔开
num = [1, 3, 2, 4]

列表元素类型

列表中除了可以存放字符串以外,也可以放数值类数据,还可以包含列表,以下几种都可以

num = [1, 3, 2, 4]
name = ["Tony", "Peter", "Kevin", "David"]
aList = [123, 'abc', 4.56, ['inner', 'list'], 7+9j]

空列表

列表里可以什么元素都没有

empty_list = []   # empty_list 为空列表

range生成列表

range() 需要输入一个数值,比如 n,然后返回一组数字

my_range = range(2,20,2)
print(list(my_range))
# 输出:[2, 4, 6, 8, 10, 12, 14, 16, 18]

4.2 访问列表

选择列表元素

  • 从左至右数:起始位置为 0,用[]包裹目标元素的索引位置
  • 从右至左数:起始位置为-1,需要在索引位置的数字前加上负号
letter = ["a", "b", "c", "d", "e", "f", "g", "h"]
print(letter[0])      #  输出:"a"
print(letter[-1])     #  输出:"h"
print(letter[-1].title())     #  输出:"H",把首字母大写

截取列表

letter = ["a", "b", "c", "d", "e", "f", "g", "h"]
print(letter[2:6])
# 输出: ['c', 'd', 'e', 'f']
  • 如果想从列表中第一个元素开始截取,:前的数字可以省略list[:5]
  • 如果想截取到列表的最后一个元素,:后的数字可以省略list[1:]
  • 也可以用负数索引位置从右至左截取列表list[-4:-1]
number = [1,2,3,4,5,6,7,8,9,10]
print(number[:3])
# 输出:[1, 2, 3]
print(number[3:])
# 输出:[4, 5, 6, 7, 8, 9, 10]
print(number[-3:])
# 输出:[8, 9, 10]

查找元素位置

.index(),查找元素出现的位置(第一次出现的位置)

name = ['Yangyang','Lindy','Alice','Leimei','Jack','Yangyang']
name.index('Yangyang')
# 输出:0

4.3 组队组合

列表连接

Python 中,可以用 +来连接多个列表
列表只能和列表相连接,如果将列表和字符串或数值连接,计算机会报错

zoo = ["大象", "熊猫", "猩猩", "海獭"]
new_animals = ["长颈鹿", "虎", "羊驼"]
zoo = zoo + new_animals
print(zoo)
# 输出:['大象', '熊猫', '猩猩', '海獭', '长颈鹿', '虎', '羊驼']

扩展列表

.extend:在列表末尾一次性追加另一个序列中的多个值

zoo = ["大象", "熊猫", "猩猩", "海獭"]
new_animals = ["长颈鹿", "虎", "羊驼"]
zoo.extend(new_animals)  
print(zoo)
# 输出:['大象', '熊猫', '猩猩', '海獭', '长颈鹿', '虎', '羊驼']

列表组队

zip() 将两个列表中的元素一一组成对,形成一个新的对象

name = ["吴承恩", "罗贯中", "施耐庵", "曹雪芹、高鹗"]
book = ["西游记", "三国演义", "水浒传", "红楼梦"]
name_and_book = zip(name, book)
print(name_and_book)
# 输出:  该对象在内存中的位置
print(list(name_and_book))
# 输出:[('吴承恩', '西游记'), ('罗贯中', '三国演义'), ('施耐庵', '水浒传'), ('曹雪芹、高鹗', '红楼梦')]

4.4 修改、添加、删除元素

添加元素

.append()为列表添加元素
当列表中有其他元素时,append() 将新元素添加至所有元素之后

my_list = []
my_list.append(1)
my_list.append(2.0)
my_list.append(3)
my_list.append('jjj')
my_list.append(1)
print(my_list)
# 输出:[1, 2.0, 3, 'jjj', 1]

插入元素

.insert(位置,插入元素)为列表插入元素

name = ['lindy','Alice','Leimei','Jack']
name.insert(0,'Yangyang')
print(name)
# 输出:['Yangyang', 'lindy', 'Alice', 'Leimei', 'Jack']

修改列表值

name = ['lindy','Alice','Leimei','Jack']
name[2] = 'Yangyang'
print(name)
#输出:['lindy', 'Alice', 'Yangyang', 'Jack']

删除列表值

如果你确切的知道要删除元素的索引:用del 语句

name = ['Yangyang','lindy','Alice','Leimei','Jack']
del name[1]
print(name)
#输出:['Yangyang', 'Alice', 'Leimei', 'Jack']

如果你不知道要删除元素的索引:用remove()方法

name = ['Yangyang','lindy','Alice','Leimei','Jack']
name.remove('Alice')
print(name)
# 输出:['Yangyang', 'lindy', 'Leimei', 'Jack']

关于删除元素,还有一种方法,这种方法是,你虽然删除了这个元素,但是这个元素的内容,你还是要用的。这时候,我们用.pop()方法

name = ['Yangyang','lindy','Alice','Leimei','Jack']
name_pop = name.pop()  # 默认弹出最后一个
print(name)
print(name_pop)
# 输出:
# ['Yangyang', 'lindy', 'Alice', 'Leimei']
# Jack

弹出列表中任何位置的元素

name = ['Yangyang','lindy','Alice','Leimei','Jack']
name_pop = name.pop(2)
print(name)
print(name_pop)
# 输出:
# ['Yangyang', 'lindy', 'Leimei', 'Jack']
# Alice

4.5 列表操作

串联若干字符

.join() 串联若干字符,这是一个字符串的方法,但是可以处理列表数据,将列表的数据连接起来

text = ["I","Love","You"]
print(" ".join(text))  # 输出: I Love You
print("、".join(text))  # 输出: I、Love、You

获取列表长度

len()返回列表、字符串长度

name = ['Yangyang','lindy','Alice','Leimei','Jack']
print(len(name)) 
# 输出:5

sentence = "临渊羡鱼不如退而结网"
print(len(sentence))  
# 输出:10

列表排序

.sort():永久排序,按字母顺序或者数字

name = ['Yangyang','Lindy','Alice','Leimei','Jack']
name.sort()  # 正着排
print(name)
# 输出:
# ['Alice', 'Jack', 'Leimei', 'Lindy', 'Yangyang']

number = [3,77,44,278,35,1,5567,58]
number.sort()
print(number)
# 输出:
# [1, 3, 35, 44, 58, 77, 278, 5567]

name = ['Yangyang','Lindy','Alice','Leimei','Jack']
name.sort(reverse=True)  # 倒着排
print(name)
# 输出:
# ['Yangyang', 'Lindy', 'Leimei', 'Jack', 'Alice']

# 数字和字母在一起
number = ['3','23456645','6789','Yangyang','Lindy','Alice','Leimei','Jack']
number.sort()
print(number)
# 输出:
# ['23456645', '3', '6789', 'Alice', 'Jack', 'Leimei', 'Lindy', 'Yangyang']

sorted():临时排序

name = ['Yangyang','Lindy','Alice','Leimei','Jack']
print(sorted(name))  # 正着排
print(name)
# 输出:
# ['Alice', 'Jack', 'Leimei', 'Lindy', 'Yangyang']
# ['Yangyang', 'Lindy', 'Alice', 'Leimei', 'Jack']

计算元素出现次数

count(n)返回元素 n在列表中出现的次数

zoo = ["熊猫", "长颈鹿", "金丝猴", "熊猫", "长颈鹿", "大象", "熊猫", "海獭", "羊驼", "熊猫", "海獭", "金丝猴", "熊猫", "大象", "长颈鹿", "羊驼"]
print(zoo.count("熊猫"))
# 输出 5,元素"熊猫"在列表 zoo 中出现5次

拷贝和清空列表

# clear
name = ['Yangyang','Lindy','Alice','Leimei','Jack','Yangyang']
name.clear()
print(name)
# 输出:[]
# copy
name = ['Yangyang','Lindy','Alice','Leimei','Jack','Yangyang']
name1 = name.copy()
print(name1)
# 输出:['Yangyang', 'Lindy', 'Alice', 'Leimei', 'Jack', 'Yangyang']

copy和直接赋值的不同:
如果直接赋值,改变赋值的对象number1,原来的number也会被修改

number = [2,3,4,5,6,7,8]
number1 = number
number1[1] = 1
print(number)
print(number1)
# 输出:
# [2, 1, 4, 5, 6, 7, 8]
# [2, 1, 4, 5, 6, 7, 8]

如果是copy,则相互不影响

number = [2,3,4,5,6,7,8]
number1 = number.copy()
number1[1] = 1
print(number)
print(number1)
# 输出:
# [2, 3, 4, 5, 6, 7, 8]
# [2, 1, 4, 5, 6, 7, 8]

4.6 列表所有方法

dir(list)
 'append',  # 添加列表元素
 'clear',  # 清空列表
 'copy',  # 拷贝列表
 'count',  # 返回元素在列表中出现的次数
 'extend',  # 拓展列表
 'index',  #查找元素出现的位置
 'insert',  # 插入列表元素
 'pop',  # 删除列表元素,这个元素你还要用
 'remove',  # 删除列表元素,根据内容删
 'reverse',  # 反转列表元素
 'sort' # 永久性排序

zip() :将两个列表中的元素一一组成对,形成一个新的对象
range(a,b,c):a,b,c为数字。a为开始,b为结尾,c为间隔;a省略时默认为0,c省略时默认为1
len():返回列表、字符串长度
sorted():临时排序
del:删除列表元素-根据位置

4.7 列表计算

number = list(range(20))
print(number)
# 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

print(min(number))
# 输出:0

print(max(number))
# 输出:19

print(sum(number))
# 输出:190

4.8 实践:操作列表

建立一个空列表,把你最喜欢的五个东西依次添加进去,然后把所有的方法,都给它倒腾一遍,确保自己能熟练运用。

请在作业的最后一行输出:

昵称:第4节课作业

你可能感兴趣的:(Python入门:列表)