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

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])
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 01-认识列表 列表(list): 1.什么是列表 是python中的容器类的数据类型,可以用来存储多个数据。可变...
    佐手牵鼬手_89a9阅读 89评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,756评论 2 9
  • 纵铁马踏荒原,累累白骨添孤坟,长剑素缨请诸神,豪情壮心不问征途,恋恋风尘; 焚禅香誊心经,靡靡梵音度归人,晨钟暮鼓...
    散文之美阅读 295评论 0 0
  • 最近我看了一本书,余世存老师写的节气的书,从去年卖到现在30多万册,大热门的书。中国几乎所有文化都可以纳入节气这个...
    Avantgarde阅读 266评论 0 0