python序列
python列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
list1 = [1,a,"python"]
访问列表元素
因为列表是有序集合,因此要访问列表的元素,只需要将列表的索引或元素的位置告诉python即可,索引是从0开始而不是从1开始
list1 = [1,2,"python","hello"]
print(list1[3])
print(list1[3].title()) # 元素首字母变大写
hello
Hello
增删改查列表元素
增
list2 = [1,"python"]
print(list2)
list2.append("hello")
print(list2)
list2.insert(-1,"world")
print(list2)
删
list3 = ["java", "c","c#","python"]
del list3[1]
print(list3)
list4 = list3.pop(2) # pop 返回当前移除的元素
print(list4)
print(list3)
list3.remove("java") # 移除当前指定的对象,并且没有返回值
print(list3)
python
['java', 'c#']
['c#']
改
list5 = ["java", "c","c#","python"]
list5[3] = "php"
print("list5",list5)
查
list6 = ["java", "c","c#","python"]
for index,value in enumerate(list6):
if value == "c":
print("值为:{}的索引是:{} ".format(value,index))
#list6[index] = "go"
else:
print("index",index,"value",value)
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
对列表进行排序
list6 = ["java", "c","c#","python"]
list7 = sorted(list6)
print(list7,"临时排序")
list6.sort() # sort函数对序列进行排序后,无法回到序列原来的排列顺序
print(list6)
列表反转和计算列表长度
list8 = ["java", "c","c#","python"]
list8.reverse()
print("倒着打印当前的列表",list8)
print("当前的列表长度是",len(list8))
深入了解列表
列表生成式
import os
list1 = [x for x in range(1,10)]
print(list1)
list2 = [ i**2 for i in range(1,10) if i%2 == 0]
print(list2)
list3 = [ x + ">=" + y for x in "abc" for y in "ABC"]
print(list3)
list4 = [d for d in os.listdir(".")] # os.listdir可以列出文件和目录
print(list4)
"""
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 16, 36, 64]
['a>=A', 'a>=B', 'a>=C', 'b>=A', 'b>=B', 'b>=C', 'c>=A', 'c>=B', 'c>=C']
['list_function.py', 'python_基本统计值运算.py']
"""
for循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串
for循环遍历列表
lange = [i**3 for i in range(1,20) if i % 2 == 0]
for i in lange:
print(i)
对列表进行添加,删除,遍历
language_l = list()
while True:
print("输入空字符串退出当前程序\n")
lage = input("请输入你说的语言:")
language_l.append(lage)
if lage == "":
language_l.remove(lage)
break
else:
print("请不要输入空语句")
for lan in language_l:
print("当前列表中的语言为:" + lan)
print(language_l)
python_range函数
python range() 函数可创建一个整数列表,一般用在 for 循环中。
函数语法
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
for i in range(1,10,2):
print(i)
number = list(range(1,10,2))
print(number)
numbers = list()
for i in range(1,10):
numbers.append(i**2)
print(numbers)
print("min",min(numbers))
print("max",max(numbers))
print("sum",sum(numbers))
列表切片
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。
格式:【start:end:step】
start:起始索引,从0开始,-1表示结束
end:结束索引
step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值
注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引
section = ["java","php","go","python","c#","c","C++","R语言"]
print(section[:3]) # 0 - 3
print(section[2:5]) # 2 - 4
print(section[1:6:2]) # 1-6 步长为2
print(section[2:]) # 2 - 最后一位
print(section[-1]) # 取最后一位
print(section[-3]) # 倒数第三位
print(section[-3:]) # 倒数第三位到最后
print(section[3:-3]) # 第三位到倒数第三位
print(section[::-1]) # 倒序
for sec in section[::-1]:
print("sec",sec)
section_copy = section[:]
print(section_copy)
python 列表找不同
list1 = ["java","php","go","python","c#","c","C++","R语言"]
list2 = ["python","java","javascript","go","html","php","C++","R语言","sql","ruby"]
a = [x for x in list1 if x in list2]
print("相同的",a)
b = [y for y in (list1 + list2) if y not in a]
print("不同的", b)
python 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组是不可修改类型,虽然在程序运行过程中无法对元组的元素进行插入和删除运算。但元组可以通过再构造一个新的元组替换旧的元组,来实现元素的插入和删除。
tup = (1,2,3,4,5,6,)
print(type(tup))
for i in tup:
print(i)
tup = (7,8,9,)
for i in tup:
print(i,end=",")
元组与列表相同,也是容器对象,可以存储不同类型的内容。元组与列表有两个不同点。第一个不同点是元组的声明使用小括号,而列表使用方括号,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;第二个不同点是元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。
用于列表的排序、替换、添加等方法也不适用于元组,适用于元组的主要运算有元组的合并、遍历、求元组的最大值和最小值等操作方法。