Python入门-组合数据类型(序列,列表)

发布时间:2023年12月26日

序列和索引

序列 是一个用于存储多个值的连续空间,每个值都对应一个整数的编号

使用索引检索字符串中的元素
# 正向递增
s='helloworld'
for i in range (0, len(s)):
    print(i,s[i],end='\t\t')

print('\n----------分隔符-------------')
for i in range(-10,0):
    print(i,s[i],end='\t\t')

# s[9] 和 s[-1] 获取到的数据是一样的
print('\n',s[9],s[-1])

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-1使用索引检索字符串中的元素.py 
0 h		1 e		2 l		3 l		4 o		5 w		6 o		7 r		8 l		9 d		
----------分隔符-------------
-10 h		-9 e		-8 l		-7 l		-6 o		-5 w		-4 o		-3 r		-2 l		-1 d		
 d d

1.序列

序列的切片操作
s='helloworld'
#切片操作
s1=s[0:5:2]  #索引从0 开始,到5结束(不包含5)步长为2
print(s1)
#省略了开始位置, start默认从0开始
print(s[:5:1])
#省略开始位置start,省略步长 step
print(s[:5:])

#省略结束位置
print(s[0::1])  #stop位置不写,默认序列的最后一个元素(包含最后一个元素 )
print(s[5::])
print(s[5:])  #12行代码与13行代码功能相同,省略了结束,省略了步长

#更改一下步长,步长更改为2
print(s[0:5:2])

#省略开始位置,省略结束位置,只写步长
print(s[::2])  #分别获取 0,2,4,6,8 索引位置上的  元素

#步长为负数
print(s[::-1])  #可以用哪句代码替换呢?
print(s[-1:-11:-1])
序列的相加和相乘
s='Hello'
s2='World'
print(s+s2) #产生一个新的字符串序列

#序列的相乘操作
print(s*5)
print('-'*40)
序列的相关操作符和函数
s='HelloWorld'
print('e在HelloWrold中存在吗?',('e' in s))
print('v在HelloWrold中存在吗?',('v' in s))

# not in 的使用
print('e在HelloWrold中不存在吗?',('e' not in s))
print('v在HelloWrold中不存在吗?',('v' not in s))

#内置函数的使用
print('len():',len(s))
print('max():',max(s))
print('min():',min(s))

#序列对象的方法,使用序列的名称,打点调用
print('s.index(x):',s.index('o'))  #o在s第一次出现的索引位置
#print('s.index():',s.index('v'))  # ValueError: substring not found 报错的原因是v在字符串中根本不存在,不存在索引找不到索引的位置
print('s.count()',s.count('o'))  #o在字符串中出现的次数

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-4序列的相关操作符和函数.py 
e在HelloWrold中存在吗? True
v在HelloWrold中存在吗? False
e在HelloWrold中不存在吗? False
v在HelloWrold中不存在吗? True
len(): 10
max(): r
min(): H
s.index(x): 4
s.count() 2

2.列表

列表 是指一系列的按特定顺序排序的元素的组成,是Python中内置的 可变序列
在Python中使用 [ ] 定义列表,元素与元素之间使用 英文的逗号 分隔
列表中的元素 可以是 任意数据类型

列表的创建和删除
# 直接使用[] 创建列表
# (列表也是一种序列)
lst=['hello','world',55,98,199.9,2]
print(lst)

# 可以使用内置的函数 list() 创建列表
lst2=list('HelloWorld')
lst3=list(range(1,10,2))  #从1开始到10结束,步长为2,不包含10
print(lst2)
print(lst3)

# 列表是序列中的一种,对序列的操作,运算符,函数均可以使用
print(lst+lst2+lst3)
print(lst*3)
print(len(lst))
print(max(lst3))
print(min(lst3))

print(lst2.count('o'))
print(lst2.index('o'))

# 列表的删除工作
lst4=[10,20,30]
print(lst4)

#del lst4
print(lst4)
列表的遍历操作
lst=['hello','world','python','jarvis']
#使用遍历循环for遍历列表元素
for item in lst:
    print(item)

#使用for循环,range()函数,len函数,根据索引进行遍历
for i in range(0,len(lst)):
    print(i,'--->',lst[i])

#第三种遍历方式 enumearte() 函数
for index,item in enumerate(lst):
    print(index,item)  #index是序号,不是索引

print('-'*50)

#手动修改序号的起始值
for index,item  in enumerate(lst,start=1):  #省略start不写,直接写起始值
    print(index,item)

print('-'*50)
#列表倒序输出
print(lst[::-1])

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-6列表的遍历操作.py 
hello
world
python
jarvis
0 ---> hello
1 ---> world
2 ---> python
3 ---> jarvis
0 hello
1 world
2 python
3 jarvis
--------------------------------------------------
1 hello
2 world
3 python
4 jarvis
--------------------------------------------------
['jarvis', 'python', 'world', 'hello']
列表的相关操作
lst=['hello','world','python','jarvis']
print('原列表:',lst,id(lst))

#增加元素的操作
lst.append('sql')
print('增加元素后:',list,id(lst))  #增加元素后,lst序列对象内存地址不变


#使用 insert(index,x),再指定的index上插入元素x
lst.insert(1,100)
print(lst)

print('-'*45)
#列表元素的删除操作
lst.remove('world')
print('删除元素后的列表',lst,id(lst))

#使用 pop(index) 根据索引将元素取出,然后再删除
print(lst.pop(1))
print(lst)

print('-'*45)
#清除列表中 所有的元素 clear()
# lst.clear()
# print(lst,id(lst))

# 列表的反向输出
lst.reverse()
print(lst)

print('-'*45)

#列表的拷贝,将产生一个新的列表对象
new_lst=lst.copy()
print(lst,id(lst))
print(new_lst,id(new_lst))

#列表元素的修改
#根据索引进行修改元素
lst[1]='mysql'
print(lst)

列表的排序
lst=[4,56,3,60,55,22]
print('原列表:',lst)

#排序,默认是升序
lst.sort()  #排序是在原列表的基础上进行的,不会产生新的列表对象
print('升序后:',lst)

#排序,降序
lst.sort(reverse=True)
print('降序:',lst)

print('-'*55)
lst2=['banana','apple','Cat','Orange']
print('原列表',lst2)

#升序排序,先排大写,再排小写
lst2.sort()
print('升序:',lst2)

#降序,先排小写,再排大写
lst2.sort(reverse=True)
print('降序后:',lst2)

print('-'*55)

# 忽略大小写进行比较
lst2.sort(key=str.lower)
print('忽略大小写后排序',lst2)

列表的排序 sored
lst=[4,56,3,60,55,22]
print('原列表:',lst)

#排序
asc_lst=sorted(lst)
print('升序:',asc_lst)
print('原列表:',lst)

print('-'*55)

#降序
desc_lst=sorted(lst,reverse=True)
print('降序:',desc_lst)
print('原列表:',lst)
列表生成式
import random

lst=[item for item in range(1,11)]
print(lst)

lst=[item*item for item in range(1,11)]
print(lst)

lst=[random.randint(1,100) for _ in range(10)]
print(lst)

#从列表中选择符合条件的元素组成新的列表
lst=[i for i in range(10) if i%2==0]
print(lst)
二维列表的遍历与列表生成式
# 创建二维列表
lst = [
    ['城市', '环比', '同比'],
    ['北京', 102, 103],
    ['上海', 104, 105],
    ['广州', 100, 21]

]
#print(lst)

#遍历二维列表使用双层 for 循环
for row in lst: #行
    for item in row: #列
        print(item,end='\t')
    print() #换行

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\示例5-11二维列表的遍历与列表生成式.py 
城市	环比	同比	
北京	102	103	
上海	104	105	
广州	100	21	
文章来源:https://blog.csdn.net/weixin_43582499/article/details/135226612
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。