python:序列_列表(常用基础知识)

#序列结构主要有:列表,元组,集合,字典,字符串

#序列:索引从0开始,从最后起则索引为-1
a = [1,8,3,9,5,6]
b = ['小一','小二','小三']
c = ['Wang','baby','maya','Jiang','an']

print(a[2],a[-1],a[-3]) #输出第几项

#切片
print(a[::2])   # 默认从0到最后,每两个输出一个
print(a[1:4:2]) # 从第一个到第四个,每两个
print(a[:])     # 全部

print(a+b)      #序列相加
print(a*3)      #序列乘

#检查序列成员
print('小三' in b)  #in 在,not in 不在,结果为true
#序列长度、最大值、最小值;%d数字替代符,n\换行符
print("序列长度:%d\n序列最大值:%d\n序列最小值:%d" %(len(a),max(a),min(a)))

print(list(a))    #序列转为列表
print(str(a))     #序列转为字符串
print(sum(a))     #序列元素+
print(sorted(a))  #序列排序,a内原本顺序不会变
print(list(reversed(a))) #反向元素
#序列索引和元素组合
print(list(enumerate(a)))
for i,element in enumerate(a):
    print(i,element)


# -------------------列表-------------------------

#遍历列表
print('遍历列表')
for item in a:
    print(item)

#将a分两列输出
print('将a分两列输出')
for index,item in enumerate(a):
    if index%2 ==0:
        print(item,'\t\t',end='')  #\t:横向空出一个制表符的位置;end='':接下来输出的内容不要换行显示,即:index 0不换行,1换行,2不换行,3换行
    else:
        print(item, '\n')

# 列表增加元素a.append()
a.append('测试增加1项元素')
print(a)
#修改列表中的元素
a[0] = '测试元素修改'
print(a)
# 列表删除元素(根据索引删除
del a[-1]
print(a)
# 列表删除元素(根据元素值删除)a.remove()
a.remove(8)
print(a)

# 列表指定索引位置插入元素 a.insert()
b.insert(1,'测试插入')  #结果:['小一', '测试插入', '小二', '小三']
print(b)

#将一个列表中的所有元素都添加到另一个列表 a.extend()
a.extend(b)  #即a= a+b
print(a)

#统计元素的数量a.count()
print(a.count(9))  #结果1
print(a.index(9))  #结果2,9首次出现的索引号

#列表的排序
print('sorted(c):\n',sorted(c))  #序列排序,c内原本顺序不会变,这个结果等于c.sort()
print('sorted(c,key=str.lower,reverse=True):\n',sorted(c,key=str.lower,reverse=True))  #序列排序,c内原本顺序不会变,这个结果等于c.sort()
print(c)
c.sort()
print('区分大小写,升序排序',c)
c.sort(key=str.lower,reverse=True)  #key=str.lower:不区分大小写;reverse=False:升序排序;reverse=True:降序
print('不区分大小写,降序排序',c)

#列表推导式
#生成指定范围的数值列表
import random
d = [random.randint(11,20)*2 for i in  range(10)] #random.randint(30,90)*2:元素表达式,i:针对后面range的循环变量
print(d)
#生成指定需求的列表,如d的5折
e = [int(x*0.5) for x in d] #x*0.5:元素表达式;x:d中的元素
print(e)
#生成符合条件的列表,如f列表需要0.5的d元素,且0.5d元素依然为偶数
f = [int(x*0.5) for x in d if int(x*0.5)%2==0] #x*0.5:元素表达式;x:d中的元素
print(f)


#二维列表
#使用推导式创建二维列表
g = [[random.randint(3,8) for j in range(3) ] for i in range(4)]
print(g)                #结果:
print(g[1][2])  #单个元素

#横版输出古诗,纵版输出古诗
str1 = "千山鸟飞绝"
str2 = "万径人踪灭"
str3 = "孤舟蓑笠翁"
str4 = "独钓寒江雪"
list1 = [list(str1),list(str2),list(str3),list(str4)]

print('------------横向古诗-方法1------------')
for itemh in list1:                 #每个子列表存在于列表中
    for item in itemh:              #每个字存在于子列表中
        if itemh.index(item) ==4:   #子列表中最后一个字换行打印,其余不换行打印
            print(item)
        else:
            print(item,end='')


print('------------横向古诗-方法2------------')
for i in range(4):                 #每个子列表存在于列表中
    for j in range(5):              #每个字存在于子列表中
        if j==4:   #子列表中最后一个字换行打印,其余不换行打印
            print(list1[i][j])
        else:
            print(list1[i][j],end='')




print('------------纵向古诗-方法2------------')
list1.reverse()   #倒叙古诗句子

for i in range(5):
    for j in range(4):
        if j ==3:
            print(list1[j][i])
        else:
            print(list1[j][i],end='')

猜你喜欢

转载自www.cnblogs.com/jxba/p/9862804.html