Day 7 列表

1.什么时候用列表:需要用一个变量去同时保存多个数据

2.什么是列表(list)

列表是python内置的容器型数据类型(序列),可变(说明支持增删改)并且有序(支持下标操作)
用中括号[]将多个元素括起来,多个元素之间逗号隔开:[元素1,元素2,元素3...]

3.列表中的元素:python内置的数据类型对应的数据,或者是程序员自定义类型的数据都可以 不同元素的类型可以不一样

注意:赋值语句运算表达式不能做为列表元素!其他的都可以。

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

4.查 - 获取列表元素

获取单个元素:列表[下标]

names = ['张三','李四','王二','赵一']
print(names[2])

获取部分元素-切片(和字符串一样):列表[开始下标:结束下标:步长]

列表切片结果是列表

print(names[1:4])
print(names[:])

遍历

a.直接遍历
for 变量 in 列表: # 变量取到的是元素
循环体

b.通过下标遍历
for 变量 in range(len(列表)): # 变量取到的是下标
循环体

for item in names:
    print(item)

for index in range(len(names)):
    print(index,names[index])
scores = [90,80,70,100,76,57,54]
sum2 = 0
sum1 = 0
for item in scores:
    if item <= 60:
        sum2 += 1
    sum1 += item
print('平均分:%.1f 不及格人数:%d' % (sum1/len(scores),sum2))

补充: 求和函数 sum
sum(序列) - 求序列中所有元素的和;序列要求元素类型一致,并且元素支持求和运算

print(sum(scores),sum(range(101)))

练习:输入一个数字,将其添加到一个有序列表中,要求添加进去后不改变从小大大或者从大到小的顺序

lists = [1,14,26,78,100]
item = int(input('输入一个数字:'))
index = 0
for list in lists:
    if item >= list:
        index+=1
lists.insert(index,item)
print(lists)
 方法二:
for list in range(len(lists)):
    if lists[list] > item:
        lists.insert(index,item)
        break
else:
    lists.append(item)
print(lists)

6.删 - 删除元素

1, del 列表[下标] - 将指定列表中指定下标对应的元素删除

numbers = [1,2,3,4,5]
del numbers[2]
print(numbers)

2. 列表.remove(元素) - 将指定列表中第一个指定元素删除

注意: 如果指定删除元素不在,会报错

numbers = [1,2,3,4,5]
numbers.remove(3)
print(numbers)

3,

列表.pop() - 移除列表中最后一个元素,返回被移除的元素
列表.pop(下标) - 移除列表中指定下标对应的元素,返回被移除的元素

numbers = [1,2,3,4,5]
del_number=numbers.pop()    # 移除最后一个元素
print(numbers,del_number)
numbers = [1,2,3,4,5]
del_number=numbers.pop(1)   # 移除列表中下标为1 的元素
print(numbers)

4.清空: 列表.clear() - 删除列表中所有的元素

numbers.clear()
print(numbers)

7.改 - 修改列表中的元素

列表[下标] = 新的值 - 将列表中制定下表对应的元素改成新的值

nums = [1,2,3]
nums[0] = 100
print(nums)

8. in / not in

元素 in 列表 -- 判断列表中是否包含指定的元素

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

l列表运算

a. 数学运算支持: +,*

列表1 + 列表2 - 将两个列表中的元素合并产生一个新的列表(原列表不会发生改变)
列表*N - 列表中的元素重复 N 次,产生新的列表

new_list = [1,2] + ['name','age']
print(new_list)
print(new_list*3)

b.比较运算: == ,!=

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

,<,>=,<= 只支持相同位置上元素类型相同的两个元素大小

print([1,2,3] > [100,2])

2.相关方法

len(列表)、 sum(列表) - 要求列表中的元素必须是数字 、 max(列表)、min(列表)

list(数据) - 将指定数据转换成列表,所有的序列可以转换成列表,比如:字符串,列表,字典,集合,元祖,range,迭代器

          转换的时候是将序列中的元素作为列表元素

print(list('1234'))

3.相关方法

a.列表.count(元素) - 统计指定元素在列表中的个数

print([1,2,3,1,1].count(1))

b.列表.extend(序列) - 将序列中的元素添加到列表中

list1 = []
list1.extend('123')
print(list1)
list1.extend(range(3))
print(list1)

c.列表.index(元素) - 获取指定元素在列表中的下标,如果指定元素有多个,支取第一个。 如果指定元素不存在则报错

list2 = [1, 0, 1, 2,'张飞','刘备','关羽']
print(list2.index('张飞'))

d.列表.reverse() - 将列表中的元素倒序,不会产生新列表

list2.reverse()
print(list2)

补充:内置函数:reversed(序列) - 将序列中的元素倒序产生一个新的迭代器,原序列不会修改

list1 = [1,2,3]
result = reversed(list1)   # 产生的结果为 迭代器
list1 = list(result)
print(list1)

e.列表.sort() - 对列表中的元素从小到大排序(列表中的元素类型一致并且支持比较运算)

scores = [2,34,3,4,5,23,54,52]

 scores.sort()
 print(scores)
scores.sort(reverse = True)
print(scores)

f.列表.copy() - 产生一个新列表,列表中的元素和前列表一样,相当于: 列表[:]

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

推荐阅读更多精彩内容