day7

2018-10-19  本文已影响0人  13147abc

认识列表

1.什么是列表

2.字面量

列表中的元素可以是任何类型的数据 -->包括整数、浮点数、布尔、字符串、列表、字典、元祖、集合、函数、类的对象等
"""
list1 = [23, 1.87, 'abc'] # 声明一个变量list1,给它赋了一个列表。列表有三个元素

list2 = [
    [1,2],
    'abc',
    False
]

list3 = [
    {'a': 10},
    {'abc': True}
]
print(type(list3))
name = '路飞'
names = ['小明', '小花', '小红', name]
print(names)

获取列表元素

1.获取单个元素

names = ['路飞', '娜美', '佐罗', '山治', '罗宾']
print(names[0], names[-4])
# print(names[20])  # 下标不能越界

2.获取部分元素(切片) ---> 结果是个列表

print(names[1:3])
print(names[:4:2])
print(names[::-1])
print(names[:])

元素的增删改

1.增(增加元素)

films.append('美国队长')
print(films)

films.append('恐怖游轮')
print(films)
films.insert(1, '双瞳')
print(films)

films.insert(0, '雷神')
print(films)

2.删(删除列表中的元素)

a = 10
del a
print(a)

heros = ['盖伦', '儿童劫','维克拖', '提姆', '托儿索', '儿童劫']
del heros[-2]
print(heros)
heros.remove('儿童劫')
print(heros)
beauty = ['余婷', '范冰冰', '周迅', '杨颖', '杨幂', '赵丽颖']
person = beauty.pop()
print(beauty, person)

person = beauty.pop(1)
print(beauty, person)

3.改(修改列表中的元素)

teachers = ['余婷', '骆昊', '王海飞', '肖世荣']
teachers[0] = 'YuTing'
print(teachers)

练习

1.遍历列表中的元素

numbers = [12, 34, 56, 45, 90, 89]
for x in numbers:
    print(x)

for index in range(len(numbers)):
    print(index, numbers[index])

1.用一个列表,保存一个班5个学生的成绩,去求这个班的学生的总成绩

scores = [89, 78, 90, 56, 89]
sum1 = 0
for score in scores:
    sum1 += score

print(sum1)

2.用一个列表,保存多个人的名字(英文的), 将列表中所有的人的名字首字母大写

names = ['zhangsan', 'XiaoMing', 'lisi', 'wangwu']

# 方法1:
# 下标
index = 0
for name in names:
    # 取出首字母
    first = name[0]
    # 判断首字母是否是大写
    if first.isupper():
        index += 1
        continue

    # 新的名字
    new_name = name.title()
    # 修改名字
    names[index] = new_name

    index += 1
print(names)
names = ['zhangsan', 'Hu', 'HaHa', 'XiaoMing', 'lisi', 'wangwu', 'Head']
# 方法二:
for index in range(len(names)):
    name = names[index]
    # 如果是小写
    if name[0].islower():
        names[index] = name.title()
print(names)

3.删除上一个列表中,首字母是H的人的名字

names = ['Zhangsan','XiaoMing', 'Lisi', 'Wangwu']
names[:] = ['Zhangsan','HaHa', 'XiaoMing', 'Lisi', 'Wangwu', 'Head']

for name in names[:] 相等于:
new = names[:]
for name in new:

"""
for name in names[:]:
    if name[0] == 'H':
        names.remove(name)
print(names)


"""
['zhangsan','HaHa','Hu', 'XiaoMing', 'lisi', 'wangwu', 'Huo']
index = 0  zhangsan 
index = 1  HaHa   ['zhangsan','Hu', 'XiaoMing', 'lisi', 'wangwu', 'Huo']
index = 1  Hu  ['zhangsan', 'XiaoMing', 'lisi', 'wangwu', 'Huo']
index = 1  XiaoMing
index = 2  Lisi
index = 3  wangwu
index = 4   Huo   ['zhangsan', 'XiaoMing', 'lisi', 'wangwu']
index = 4   
"""
names = ['zhangsan', 'HaHa','Hu', 'XiaoMing', 'lisi', 'wangwu', 'Huo']
index = 0
while index < len(names):
    name = names[index]
    if name[0] == 'H':
        del names[index]
        continue
    index += 1
print(names)

# 用一个列表保存一个班的学生的成绩,删除成绩中不及格的学生

grade = [12, 78, 98, 78]
new = grade[:]
for x in new:
    if x < 60:
        grade.remove(x)

print(grade, new, grade[:])

列表的相关运算

1.+

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
print(list1 + list2)
print(list1)

2.*

print(list1*3)

3.比较运算

print([1, 2, 3] == [2, 1, 3])   # False
print([1, 2, 3] == [1, 2, 3])   # True

== --> 判断的是值是否相等
is --> 判断的是地址是否相等(面试!)

list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(id(list1), id(list2), id(list3))

print(list1 == list2)   # True
print(list1 is list2)   # False
print(list1 is list3)   # True
# print([1, 2, 5] > [10, 2, 3, 4])

列表赋值

list1 = ['a', 'aa', 'aaa']
list2 = list1   # 将list1中的数据的id赋给list2

list2.append('aaaa')
print(list2)
print(list1)

list3 = list1[:]  # 将list1中的数据拷贝一份,存到新的内存区域中,然后将新的地址给list3
list3.pop(0)
print(list3)
print(list1)

list1 = [1, 2, 3]
list2 = list1
list1 = [1, 200, 3]
list1[1] = 'abc'
print(list1, list2)

列表的相关运算

1.in 和 not in

print([1, 2, 3] in [1, 2, 3, 4, 5])   # False
print([1, 2, 3] in [[1, 2, 3], 2, 3, 4])  # True

print('abc' in [1, 2, 3, 'abc'])

2.len()

print(len([1, 2, 3, 4, 5]))
list1 = [1, 2, 3, 100, 90]
print('max:',max(list1))
print('min:', min(list1))

 list2 = [lambda a:a, lambda x:x*2]
 print(max(list2))

4.list()

print(list('abcde'))
print(list(range(5)))
# print(list(100))  # TypeError

5.count()

names = ['千与千寻', '龙猫', '哈尔的移动城堡', '风之谷', '千与千寻']
print(names.count('千与千寻'))
print(names.count('幽灵公主'))

6.extend()

names.extend('abc')
print(names)

names.extend(range(3))
print(names)

names.extend(['11', '22'])
print(names)

7.index()

names = ['沉默的羔羊', '肖生克的救赎', '阿甘正传', '霸王别姬', '阿甘正传']
print(names.index('肖生克的救赎'))
print(names.index('阿甘正传'))
# print(names.index('abc'))  # 如果元素不存在,会报错, ValueError

8.reverse()

names.reverse()
print(names)

9.sort() 和 sorted

scores = [12, 89, 78, 90, 78, 100]
scores.sort()
print(scores)

scores = [12, 89, 78, 90, 78, 100]
scores.sort(reverse=True)
print(scores)

scores = [12, 89, 78, 90, 78, 100]
new_scores = sorted(scores, reverse=True)
print(new_scores)
scores.clear()
print(scores)
list1 = [1, 2, 3, 'abc']
new = list1.copy()
print(new, id(list1), id(new))
上一篇 下一篇

猜你喜欢

热点阅读