美文网首页
2018-10-08 Day 07 容器类型之列表

2018-10-08 Day 07 容器类型之列表

作者: EryangZ | 来源:发表于2018-10-08 17:21 被阅读0次

Day 07 容器类型之列表

1. recode

1. 基本数据类型

int float bool complex str list dict tuple set

类型名()——————>转换数据类型

2. 字符串

str
a. 双引号或者单引号括起来的: "abc"、"123"、'\u4f17'
b. 获取单个字符————>字符串[下标]
c. 获取一部分字符————>字符串[:],字符串[::]
d. +, *, 比较,一般比较两个字符大小比较多
e. 常见字符串方法例如: len()、chr(由编码值获取字符)、ord(获取字符编码值)
f. 格式化字符串:%s、%d、%.nf  {}.format()

3. 分支结构

if 条件语句:
    语句

if 条件语句:
    语句1
else:
    语句2

if 条件语句:
    语句1
elif 条件语句2:
    语句2
else:
    语句3

4. 循环结构

for 变量 in 序列(容器类型的数据):
    循环语句

while 条件语句:
    循环语句

break、continue、else
break和continue只能在循环体里面

break 直接结束整个循环
continue 结束当次循环
else 当所有循环正常完成结束后,执行else

2. 认识列表

列表(list):

1. 什么是列表

列表是python中的容器类的数据类型,可以用来存储多个数据,注意:列表是可变的,有序的可变是指列表的元素的值和位置以及列表的长度可变,增、删、该有序是指列表确定后列表的每个元素都是有顺序的,可以通过下标来获取元素

2. 列表的字面量

格式:[元素1, 元素2, 元素3, ……, 元素n]

[]————>空列表
列表中的元素可以是任何类型的数据————>包括整数,浮点型、复数、bool值、列表、元组、集合、函数、类的对象等等

list1 = [1, 23, "abc"] # 声明一个变量lis1,有三个元素
list2 = [[1, 2], "abc", True, False] #声明一个列表,有四个元素,列表、字符串、bool值

注意:变量也可以作为列表的元素

name = "路飞"
names = ["二扬", "小花", "小红", name]
print(names)

3. 获取元素

1. 获取单个元素

列表[下标] 说明:列表一旦确定,列表中每个元素的下标就确定了,下标的范围0列表长度或-1-列表长度

names = ["路飞", "娜美", "佐罗", "山治", "罗宾"]
print(names[0], names[-4])
print(names[2])

print(names[20])  报错,list index out of range

2. 获取部分元素(切片)————>结果是一个新的列表

和字符串切片一样,列表[起始下标:结束下标], 列表[起始下标, 结束下标, 步长]

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

4. 元素的增、删、改

films = ["绿巨人", "钢铁侠", "蜘蛛侠", "神奇四侠"]

1. 增(增加元素),直接修改列表

a. append(),在列表最后添加元素

films.append("美国队长")
print(films)
films.append("恐怖游轮")
print(films)

b. insert(下标, 元素),在指定下标前添加指定元素

films.insert(1, "双瞳")
print(films)

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

c. +

film1 = ["雷神"]
film2 = ["美队"]
print(film1 + film2)

2. 删(删除列表元素)

a. del 列表[下标]————>删除列表中指定位置的元素

del语句是python中用来删除数据的语法,可以删除任何数据

print("--------------------------------------")
a = 10
del a
# print(a)  报错,a没有被声明

heros = ["盖伦", "儿童劫", "维克托", "提莫", "托儿索", "儿童劫"]
print(heros)
del heros[-2]
print(heros)

b. 列表.remove(元素) ————>删除列表中指定的元素,删除的是从左至右第一个

heros.remove("儿童劫")
print(heros)

c. 列表.pop() --->将列表中最后一个元素取出

列表.pop(下标) --->将列表中指定的元素取出

gun = ["98k", "M4", "AK", "AWM", "Vector"]
print(gun)
a = gun.pop()
print(gun, a)

b = gun.pop(1)
print(gun, b)

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

a. 单个元素修改:列表[下标] = 新值 ---->修改指定下标对应的元素

print("============================")
teachers = ["余婷", "路飞", "二扬", "索罗"]
print(teachers)
teachers[0] = "yuting"
print(teachers)

b. 切片修改:列表[:] = 新值

name = ["ers", "haha", "yuting", "chris", "xeman"]
name[0:2] = "eryang", "han"
print(name)

5. 练习

遍历列表中的元素

a. for循环遍历列表,拿到的就是列表中的每个元素

numbers = [1, 3, 5, 7, 9, 11]
for x in numbers:
    print(x)

b. 通过下标遍历元素

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

练习1:有一个列表保存一个班的五个学生的成绩,求总成绩

grades = [100, 90, 80, 20, 10]
sum1 = 0
for i in grades:
    sum1 += i
print(sum)

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

names = ["erYang", "jone", "alIce", "hAn", "bob", "hesan"]
print(names)
for i in range(len(names)):
    names[i] = names[i].title()
print(names)

练习3:删除上一个列表中首字母是H的人的名字

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


names = ["Eryang", "Jone", "Alice", "Han", "Bob", "Hesan"]
index = 0
while index < len(names):
    name = names[index]
    if name[0] =="H":
        names.pop(index)
        continue # 或者 index -= 1
    index += 1
print(names)

练习4:用一个列表保存一个班的成绩,删除不及格的同学的成绩

score = [100, 99, 20, 39, 50, 66, 77, 39, 94, 5, 88, 43]
for x in score[:]:
    if x < 60:
        score.remove(x)
print(score)


scores = [100, 99, 20, 39, 50, 66, 77, 39, 94, 5, 88, 43]
index = 0
while index < len(scores):
    score = scores[index]
    if score < 60:
        scores.pop(index)
        index -= 1
    index += 1
print(scores)

6. 列表的相关运算

1. +

列表1 + 列表2 会将两个列表合并产生一个新的列表

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

2. *

列表*n 将列表中的元素重复n次,产生一个新的列表

print(list1 * 3)


print("================")

3. 比较运算符

a. list1 == list2 判断两个列表中的元素(值)是否相等(个数, 值, 顺序)

print([1, 2, 3] == [2, 1, 3])
print([1, 2, 3] == [1, 2, 3])

b. is 比较两个列表(地址)是否相等(面试的区别)

id、value、type

id--->数据在内存的地址

value--->数据的值

type---->数据的类型

python 中变量存储数据的时候存储的是数据的地址(id),取出来的是值(value)

a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)

c = a
print(c is a)

c. <、> 两个列表比较大小,比较的是每个元素的大小,一般比较列表的第一个

元素,如果相等依次比较,不同类型的无法比较

print([1, 2, 3, 5] > [1, 2, 3, 4])

7. 列表赋值

1. +

列表1 + 列表2 会将两个列表合并产生一个新的列表

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

2. *

列表*n 将列表中的元素重复n次,产生一个新的列表

print(list1 * 3)


print("================")

3. 比较运算符

a. list1 == list2 判断两个列表中的元素(值)是否相等(个数, 值, 顺序)

print([1, 2, 3] == [2, 1, 3])
print([1, 2, 3] == [1, 2, 3])

b. is 比较两个列表(地址)是否相等(面试的区别)

id、value、type

id--->数据在内存的地址

value--->数据的值

type---->数据的类型

python 中变量存储数据的时候存储的是数据的地址(id),取出来的是值(value)

a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)

c = a
print(c is a)

c. <、> 两个列表比较大小,比较的是每个元素的大小,一般比较列表的第一个

元素,如果相等依次比较,不同类型的无法比较

print([1, 2, 3, 5] > [1, 2, 3, 4])

相关文章

网友评论

      本文标题:2018-10-08 Day 07 容器类型之列表

      本文链接:https://www.haomeiwen.com/subject/mnujaftx.html