水果搬运工教你玩Python之list
一,水果搬运工玩list
这次小明是一名搬运工,专门搬运水果的!(完整代码在文章最后面)
今天是小明入职的第一天,仓库的仓管说:“今天这一排有五个区域,从左往右数从0开始记录区域的数字,先不用问为什么这么记,待会就知道了”
小明照做,记下了这五个区域的序号(
索
引
,
下
标
\color{red}{索引,下标}
索引,下标),不过看不清具体是什么水果,毕竟包装的都差不多
有人来拉货了,仓管说把2号区域的水果搬来一箱,小明照搬
cargo_area = [['红富士','红将军','金元帅'], '香蕉', '橘子', '葡萄', '西红柿']
print(cargo_area[2])
输出:
橘子
仓管说,没错,是橘子
仓管说:“把0号区域的第二块水果搬来,小明照做,一看是金元帅”
print(cargo_area[0][2])
输出:
金元帅
仓管:“小明,这次搬负一区域的水果一箱,不用算负零”
小明心想,好方法,倒着数就不用从0开始了,因为负零就是零,照搬不误
print(cargo_area[-1])
输出:
西红柿
仓管:“对的,是西红柿,小伙子理解挺好的”
中午吃过饭后,仓管:“小明,来确认下一到三号区域分别是不是香蕉,橘子,葡萄”
小明走过去查看,答道:“没错,是他们仨”
#注意取不到第四个索引
print(cargo_area[1:4])
输出:
['香蕉', '橘子', '葡萄']
搬着搬着就快要晚上下班了,小明觉得这份工作太简单了,于是自己也来确认下区域的水果
print(cargo_area[1:])
print(cargo_area[:3])
print(cargo_area[::])
输出:
[['红富士', '红将军', '金元帅'], '香蕉', '橘子']
[['红富士', '红将军', '金元帅'], '香蕉', '橘子', '葡萄', '西红柿']
[['红富士', '红将军', '金元帅'], '香蕉', '橘子', '葡萄', '西红柿', '柚子']
第二天,小明来仓库照常上班
仓管:“今天上午都是进货,小明准备好了吗?”
小明:“好了!”
不一会,就来了一批水果
仓管:“这是柚子,放到水果的尾端”
小明用了
a
p
p
e
n
d
(
)
\color{red}{append()}
append()的方法
cargo_area.append("柚子")
print(cargo_area)
输出:
[['红富士', '红将军', '金元帅'], '香蕉', '橘子', '葡萄', '西红柿', '柚子']
小明刚搬完柚子,仓管:“快来快来,又到了一批水果,先搬石榴,然后是榴莲,最后搬芒果”
小明用
e
x
t
e
n
d
(
)
\color{red}{extend()}
extend()方法
cargo_area.extend(["石榴","榴莲","芒果"])
print(cargo_area)
输出:
[['红富士', '红将军', '金元帅'], '香蕉', '橘子', '葡萄', '西红柿', '柚子', '石榴', '榴莲', '芒果']
仓管:“山竹终于来了,把它放在榴莲的右边吧,右边的水果 都右移一个区域”
小明先数了一下榴莲的位置,用
i
n
s
e
r
t
(
)
\color{red}{insert()}
insert()方法
cargo_area.insert(8,"山竹")
print(cargo_area)
输出:
[['红富士', '红将军', '金元帅'], '香蕉', '橘子', '葡萄', '西红柿', '柚子', '石榴', '榴莲', '山竹', '芒果']
小明问:“一号区域的是芭蕉吧,要不要做个标记”
仓管:“对芭蕉,这么说更详细些”
小明做了个
索
引
替
换
\color{red}{索引替换}
索引替换
cargo_area[1] = "芭蕉"
print(cargo_area)
输出:
[['红富士', '红将军', '金元帅'], '芭蕉', '橘子', '葡萄', '西红柿', '柚子', '石榴', '榴莲', '山竹', '芒果']
仓管:“唉!小明,来吃午饭吧,下午我们仓库开门,直接批发水果,中午好好休息!”
第二天下午,仓库开门了,仓库外面就是炎炎的烈日,好在小明不用出去搬水果
不一会,芒果,橘子和所有的苹果都买完了,小明为了方便,自己移动了水果的位置,反正自己记得
小明用了,
p
o
p
(
)
\color{red}{pop()}
pop()的两种方法,和
r
e
m
o
v
e
(
)
\color{red}{remove()}
remove()方法
cargo_area.pop()#移除列表最后一个元素
cargo_area.pop(0)#移除对应索引的元素
cargo_area.remove("橘子")#移除对应内容的元素
print(cargo_area)
输出:
['芭蕉', '葡萄', '西红柿', '柚子', '石榴', '榴莲', '山竹']
天快黑了,老板来了仓库:“都过来,今天这些水果在卖不出去明天可就更不好卖了,可以便宜点,今天要是都卖出去了,明天早上10天再来上班!”
仓管听到后,发朋友圈、微信群,只要是能推广到的地方都发了,果不其然刚过19点,水果都卖出去了
这时候就到了小明最喜欢的部分了,用
c
l
e
a
r
(
)
\color{red}{clear()}
clear()方法,一切从零开始!
cargo_area.clear()
print(cargo_area)
输出:
[]
二,List思维导图
三,完整代码
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 19 10:02:36 2020
@author: HPN
"""
#小明入职第一天,熟悉下仓库放水果的区域
#老师傅说把2号区域的水果装车,小明从左往右数,第三号是这一堆,仔细一看是橘子,就都搬过去了
cargo_area = [['红富士','红将军','金元帅'], '香蕉', '橘子', '葡萄', '西红柿']
print(cargo_area[2])
#老师傅说把0号区域的第二块水果搬来,小明照做,一看是金元帅
print(cargo_area[0][2])
#老师傅又说了,把负一区域的水果搬来,小明一想,真好不用从前往后数了,接着照做
print(cargo_area[-1])
#老师傅说好了,休息会儿,确认下一到三号区域分别是不是香蕉,橘子,葡萄
print(cargo_area[1:4])
#马上下班了,小明闲来无聊,自己又确认了下货物区的水果
print(cargo_area[1:])
print(cargo_area[:3])
print(cargo_area[::])
'''.append()'''
#到货柚子,直接放在货物区的最后面
cargo_area.append("柚子")
print(cargo_area)
#一下到了石榴,榴莲,芒果,就想继续用append方法,直接放进去好了
cargo_area.append(["石榴","榴莲","芒果"])
print(cargo_area)
#结果一看全都放在一起了,应该分开放,请教了一下老搬运工先把水果拿开,用extend方法
cargo_area.pop()
print(cargo_area)
#分开将石榴,榴莲,芒果三种水果放到三个区域
cargo_area.extend(["石榴","榴莲","芒果"])
print(cargo_area)
#老搬运工说要把新到的山竹放在榴莲的右边,用insert()方法
cargo_area.insert(8,"山竹")
print(cargo_area)
#店铺开张了,发现把苹果写成红富士更吸引人,用索引修改
cargo_area[1] = "芭蕉"
print(cargo_area)
#先是有人把芒果全买了,用pop()方法删除芒果的位置
cargo_area.pop()
print(cargo_area)
#接着,因为苹果(红富士)和橘子看着很新鲜,苹果(红富士)和橘子也卖完了,老师傅说,可以用pop加索引或者remove加索引的方法删除
cargo_area.pop(0)
cargo_area.remove("橘子")
print(cargo_area)
#很快,忙碌的一天就要过去了,在傍晚的时候,老板说,今天在卖不出去,明天就不新鲜了,赶紧都便宜卖了吧,
cargo_area.clear()
print(cargo_area)