Python列表

2019-11-06  本文已影响0人  C_Z_Q_

列表

1)创建列表

list_1 = ['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯']]

2)列表的访问

list_1 = ['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯']]
print(list_1[3])
print(list_1[3][0])

3)查看列表里的元素个数

list_1 = ['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯']]
print(len(list_1))   #4

4)列表的添加

list_1 = ['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯']]
list_1.append(['1', '2', '3'])
print('添加后列表的值是', list_1)
list_1 = ['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯']]
list_1.insert(3, '今天列表天气不错')
print('使用insert 添加后输出的值是', list_1)
list_1 = ['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯']]
list_1.extend([3, 4, 5, 6, 6])
print('使用extend 添加后输出的值是', list_1)#['鲁班', '安其拉', '狄仁杰', ['科比', '詹姆斯'], 3, 4, 5, 6, 6]

5)列表的 + 和 * 操作

x = [1, 2, 3]
y = x + [4]
print(y)  #[1, 2, 3, 4]
y = x * 2
print(y)

6)列表元素的删除

x = [1, 2, 3, 4, 5]
x.pop()
print(x)#[1, 2, 3, 4]
#返回值
value = x.pop(1)
print('有返回值和删除后的', x, value)#[1, 3, 4] 2
x = [1, 2, 3, 2, 4, 5]
x.remove(2)
print('remove删除后', x)
x = [1, 2, 3, 2, 4, 5]
x.clear()
print('清空后的x ', x)
x = [1, 2, 3, 2, 4, 5]
del x[0]
print(x)#[2, 3, 2, 4, 5]

7)列表元素的计数

x = [1, 2, 3, 2, 4, 5, 5, 5]
print(x.count(2))
print(x.count(5))
print(x.count(0))
x = [1, 2, 3, 2, 4, 5, 5, 5]
print(x.index(2))
print(x.index(1))
print(x.index(2,2,4))#左闭右开

8)in
测试列表是否含有该元素 返回bool类型

x = [1, 2, 3, 2, 4, 5, 5, 5]
print(6 in x)   #False
print(1 in x)   #True
print(6 not in x)  #True

9)列表的排序

1)创建列表

list1 =[]
for x in range(15):
    list1.insert(0, x)
print(list1)

2)打乱顺序

from random import shuffle
shuffle(list1)
print('打乱顺序后', list1)

1)sort排序

list1.sort()
print('排序后', list1)
list1.sort(reverse=True)#指定为逆序排序
print(list1)
reverse()   #将列表的所有元素原地逆序排序
list1.reverse()
print('排序后',list1)

2)sorted排序

sorted(list1)
print('排序后', list1)  # 排序后 [13, 12, 0, 14, 11, 9, 10, 3, 6, 5, 8, 7, 1, 4, 2]
list1 = sorted(list1)
print('排序后', list1)  # 排序后 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
list1 = reversed(list1)
print(list1)  # <list_reverseiterator object at 0x0043EDB0>
list1 = list(reversed(list1))
print(list1)  # [14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

用于序列(列表、元组、字符串)操作的常用内置函数

x = [1, 2, 3]
print(len(x))
print(max(x))
print(min(x))
print(sum(x))

举例1:

heros = ['鲁班', '后裔']
skills = ['技能1', '技能2']
for hero, skill in zip(heros, skills):
    print(hero, '---->', skill)

举例2:

a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b)
print(zipped)
print(list(zipped))
print(list(zip(a, c)))  #元素个数与最短的一致
a1, a2 = zip(*zip(a, b))      #zip(*)    可以理解为解压,返回二维矩阵
print(list(a1))
print(list(a2))
for x in enumerate(['a','b','c']):
    print(x)
#(0, 'a')
#(1, 'b')
#(2, 'c')

遍历

l1 = ['a', 'b', 'c', 'd', 'e', 'f']
for x in l1:
    print(x)
for i in range(len(l1)):
    print(l1[i])
for index, val in enumerate(l1):
    print(val)

列表推导式

也叫生成表达式,列表推导式使用非常简洁的方式来快速生成满足特定需求的列表,代码具有非常强的可读性
语法:[返回表达式 for 临时变量 in 可迭代对象 条件表达式]
注:列表推导式逻辑上是一个for循环,只不过更加简洁

li = [0,1,2,3.....9]
li = [i for i in range(10)]
print(li)
result = []
L = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#平铺这个列表
for l in L:
    for x in l:
        result.append(x)
print(result)    #[1, 2, 3, 4, 5, 6, 7, 8, 9]
#使用列表推导式对列表进行平铺
print([x for l in L for x in l])
from random import randint
#  _下划线的目的是增强代码可读性,告诉读代码的人这里不需要临时变量
l2 = [randint(-20, 20) for _ in range(10)]
# print(l2)
#使用列表推导式  筛选出所有大于0的元素
print([i for i in l2 if i > 0])

作业
1.我国现有13亿人口,设每年增长0.8%,编写程序,计算多少年后达到26亿?

sum = 13
i = 1
while True:
    sum *= 1.008
    if sum >= 26:
         break
    i += 1
print(i)

2.求1!+2!+3!+4!+5!的和。

sum = 0
for i in range(1, 6):
    x = 1
    for m in range(1, i+1):
        x *= m
    sum += x
print(sum)

3.星号三角形:读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
输入:3
输出:


N = int(input('请输入奇数:'))
for x in range(1, N+1):
    if x % 2 != 0:
        print(' '*int(((N-x)/2)), end='')
        print('*'*x, end='')
    print()
上一篇下一篇

猜你喜欢

热点阅读