列表:标志、基本操作(创建,append( ),pop( ) ,del( ), 拷贝)、列表相关方法
(1)list本身的创建利用中括号,然后赋值即可。下面展示创建以及值的查询。
#list的创建
a = ['hello','world',1,2]
b = [3,a]
c = ["hi",'mike',b]
#输出list
print(a,b,c)
#list内不同元素调用
print(a[0])
print(b[1],b[1][2])
print(c[2][1][0])
运行结果
['hello', 'world', 1, 2] [3, ['hello', 'world', 1, 2]] ['hi', 'mike', [3, ['hello', 'world', 1, 2]]]
hello
['hello', 'world', 1, 2] 1
hello
(2)append()向list末尾添加值,使用方法,list.append(),但是需要注意,一次只能添加一个元素,至于元素是什么,无所谓,如图
a = ['hello','world']
a.append('0')
print(a)
b = ['1','2']
a.append(b)
print(a)
运行结果
['hello', 'world', '0']
['hello', 'world', '0', ['1', '2']]
(3)pop(),删除list中的值,空格默认为最后一个位置。
a = ['hello','world',1,2,3]
a.pop(1)
print(a)
a.pop()
print(a)
运行结果
['hello', 1, 2, 3]
['hello', 1, 2]
注意下面的过程,程序还是要多写,才会有收获。
a = ['1','2','3','4','5'];
a.pop(0);
b = a.pop(0)
print(a)
print(b)
输出
['3', '4', '5']
2
(4)del(),删除,对变量的操作。
a = ['hello','world',1,2,3]
del(a[2])
print(a)
运行结果
['hello', 'world', 2, 3]
注意比较有意思的在于del在执行操作的时候是按照顺序进行的,而非同时进行,是不是和想象的不太一样。
import copy
a = ['1','2','3','4']
b = a
c = copy.deepcopy(a)
del(a[0],a[1])
print(a)
print(b)
print(c)
结果
['2', '4']
['2', '4']
['1', '2', '3', '4']
(5)list的两种拷贝与直接赋值(注意.append会影响到前面的直接赋值),对list的操作不会影响到list的深度拷贝得到的结果,浅度拷贝内部元素如果有list,还是会有影响。(同样针对pop del等操作同样如此)
#拷贝的不同操作
import copy
a = ['hello','world',[1,2,[3]]]
b = a
c = a.copy()
c2 = copy.copy(a)
d = copy.deepcopy(a)
a.append('love');
a[2].append('you')
a[2][2].append(5)
print(a)
print(b)
print(c)
print(c2)
print(d)
运行结果
['hello', 'world', [1, 2, [3, 5], 'you'], 'love']
['hello', 'world', [1, 2, [3, 5], 'you'], 'love']
['hello', 'world', [1, 2, [3, 5], 'you']]
['hello', 'world', [1, 2, [3, 5], 'you']]
['hello', 'world', [1, 2, [3]]]
(6)列表相关方法
list的数据读取还可以采用index,即
a = [1,2,3,4]
print(a[-1])
print(a[1])
print(a[1:])
print(a[-2:])
结果:
4
2
[2, 3, 4]
[3, 4]
list的一些操作,包括,len()(获取长度);+(列表的组合);list*n(n次重复);
in (判断list里是否含有该元素)
贴一个详细的链接,https://www.runoob.com/python3/python3-list.html
元组:标志、基本操作(创建及不可变性)
(1)元组tuple的创建利用括号()即可,两边不闭合,仅用逗号隔开,也默认为元组,但是元组内部元素是不变的。
(2)元组本身不可以改变,但是内部如果存在list元素,该元素可变。
a = 1,2,[3,4]
a[2].append(5)
print(a)
运行结果
(1, 2, [3, 4, 5])
(3)元组允许一些操作,包括,len()(获取长度);+(元组的组合);tuple*n(n次重复);
in (判断tuple里是否含有该元素)
string字符串:定义及基本操作(+,*,读取方式)、字符串相关方法、字符串格式化问题
(1)字符串创建利用 ‘ ’ 包含起来即可,还有一些基本的操作。
a = 'a,b,c,d,e,f,g'
b = 'h,i,j,k,l'
c = a+','+b
print(c)
print(c[1:5])
print(c[2:5:2])
运行结果
a,b,c,d,e,f,g,h,i,j,k,l
,b,c
bc
(2)字符串的格式化利用 % 实现,
a = 'hello%s' % ',world'
b = 'hello%4d%s' % (3,'2')#%4d中间添加4个空格
c = 'hello%.3f' % 3.2345#三位小数,%f默认为6位小数
print(a)
print(b)
print(c)
运行结果
hello,world
hello 32
hello3.235
(3)贴一个廖老师的链接,注意区分python3和python2的差别,https://www.liaoxuefeng.com/wiki/897692888725344/923028730936032
(4)贴一个组员的总结,字符串总结得非常好,
https://github.com/r3xYa/DataWhale_8/blob/master/Task2.md
练习
(1)用字符串连接
a = '1234'
b = a.join('degr')
print(b)
结果
d1234e1234g1234r
#对于字符串,似乎有些问题挺有意思
str = '-'
se = ('123');
se2 = '1','2','3'
s1 = str.join(se);
s2 = str.join(se2)
s3 = s1.join(s2)
print(se,se2)
print(s1,s2,s3)
123 ('1', '2', '3')
1-2-3 1-2-3 11-2-3-1-2-321-2-3-1-2-33
(2)查找
a = '123456789012345'
b = a.find('2',0,len(a))
print(len(a))
print(b)#find(str, beg=0, end=len(string))
#检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
结果
15
1
(3)大小写
a = '1234567890ABCDE你'
b = a.lower()
print(b)
结果
1234567890abcde你