一.列表的切片:
之前我在上一篇文章里面说过字符串的切片,字符串的切片与它的索引机制有关。因此不难猜出列表也有索引机制,而且和字符串的一模一样.同样的下标,同样有两套索引机制吗,同样的格式。
举个例子给大家看看:
a = 'abcd'
b = a[0]
c = a[0:4]
print(a\n, b\n, c\n) # 它的输出结果是字符串
a = ['a', 'b', 'c', 'd']
b = a.
b = a[0]
c = a[0:4]
print(a\n, b\n, c\n) #它的输出结果是列表
二.列表元素的添加:
列表可以将某个元素截取或切片,那有什么可以添加元素的方法呢?这里介绍两种,有一种在字符串上也可以用。
第一种:用关键字append()
格式:
列表.append(添加的元素) # 如果添加元素是字符串,要添加引号
依然要举个例子:
list1 = []
list1.append('火腿肠')
print(list1)
顺便提一下,括号里面不仅可以写字符串和数字,还可以加入一个列表,就像这个样子[[···],[···],[···],····]
第二种:直接用加号,这种方法在字符串的连接亦可以使用
a = ['a']
b = 'b'
a += b
print(a)
['a', 'b'] # 这是打印结果
三.列表的融合:
如果我有两个列表,我突然想把它们变成一个列表,难道我要一个一个把这个列表的元素添加到另一个列表里面去吗?这肯定是不行的,所以我们要使用关键字extend()。列表的融合也有两种方法。
格式:
列表1.extend(列表2) #这就相当于是在列表1里面加入列表2的元素
例子:
a = ['a','b', 'c']
b = ['d', 'e', 'f']
a.extend(b)
也可以直接相加,来实现融合
a = ['a','b', 'c']
b = ['d', 'e', 'f']
a += b
print(a)
四.字符串的格式化:
字符串格式化也有两种方法:
1. '%d %s %f' %( ) %d代表整型,%s代表字符串, %f代表浮点数
2. '··{}···{}···{}'.format( )
我们来看看它们两个的具体区别:
第一种只能填入与占位符相同数据类型的变量,如果占位符都是%s,就可以不在意变量的数据类型。它自动转成字符串类型。 、 第二种与第一个不同的是,使用时不用区分数据类型,而且可以一个变量填入多个占位符,但是要给每个{}写入编号,还分为数字字段名,变量字段名。
数字字段名:其实format()里面也有个索引机制,所以可以按0123456这样一次填写{}中,来使一个变量多用
例子:
name = '赵丽颖'
age = 18
result = '美女{0}今年{1}岁,我也{1}岁'.format(name, age)
# 这里系统默认給name的下标为0,age的下标为1
print(result)
变量字段名:要在format()内写入变量,并在{}里面写入变量名。
例子:
result = '美女{name}今年{age}岁,我也{age}岁'.format(name='赵丽颖', age=18)
print(result)
五.今天写的购物小程序:
lag = True
c = 0 # 总金额
d = '' # 设置一张账单
e = [] # 这是另一种账单
while flag:
b = [input('商品名称:'), input('价格:'), input('数量:')] # 每次的商品的信息
c += int(b[1]) * int(b[2]) # 计算该商品金额
e.append(b)
d += b[0] + b[2] + '件' + '\n' # 显示账单
print('当前购物车的金额为{}'.format(c))
while flag:
a = input('是否继续添加(按q或Q键退出):')
if a.lower() == 'q':
flag = False
else:
break
print('您购买了\n{}总金额为{}元'.format(d, c)) # 显示账单
print('--' * 20)
for f in e:
print(f)