列表
列表是python中最基本、最常用的数据结构,讲道理如果列表及其基础操作不能熟练操作,你的python生涯将会面临重重阻碍。
1. 列表定义:通过 ‘[]’ 进行定义,可以存放一系列的任意数据,是一种容器类型。
lt = [1, 2, 'hello', 3.14, True]
print(lt, type(lt))
# 通过下标获取元素,有越界问题
print(lt[1])
1
2
3
4
5
2. 列表生成式:用于快速方便地生成一个列表
# 关于range()函数可参考上一章节
k = [i for i in range(1, 11)]
print(k)
output:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
1
2
3
4
5
尝试运行下面的例子,深入了解列表生成式的语法及其原理
print([i for i in 'abcdefg'])
print([i*2 for i in range(1, 11)])
print([i*i for i in range(1, 11)])
print([str(i) for i in range(1, 11)])
print([i for i in range(1, 11) if i % 2 == 0])
# 生成的列表可以与遍历的内容没有一毛钱关系
print([250 for i in range(1, 11)])
1
2
3
4
5
6
7
8
3. 列表操作
Tips:以下操作,运行查看结果
切片操作
print(lt[0]) # 获取下标为0的元素值
print(lt[-1]) # 获取最后一个列表元素的值
print(lt[1:3]) # 从下标1开始获取到下标为2的列表元素的值
print(len(lt)) # 获取列表长度,即是列表元素个数
1
2
3
4
增、删、改、查 操作
lt = [1, 2, 3, 3, 3, 4, 5]
# 增
lt.append(6) # 追加列表元素
lt.extend([7, 8]) # 将可迭代对象的元素展开,存放入列表中
# 删
lt.remove(6) # 删除列表中第一个元素值为6的列表元素
del lt[1] # 删除下标为1的列表元素
k = lt.pop(1) # 删除列表中下标为1的列表元素,并返回被删除(弹出)的元素
# 改
lt[0] = 100 # 将下表为0的列表元素的值改为100
# 查
print(lt.index(3)) # 查询元素在列表中的索引号,找到返回该元素第一个出现的位置,若不在列表中,将会报错
print(lt.count(3)) # 统计元素在列表中出现的次数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
逆序和排序
# 逆序
lt.reverse()
print(lt)
# 排序
# reverse=True表示降序排序
lt.sort(reverse=True)
print(lt)
1
2
3
4
5
6
7
8
字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号 单引号’a’ 、双引号"a"和三引号""“a”""来创建字符串。前两种创建方法和后者的区别在于,后者可以打印多行内容,而前者只能通过’\n’来进行换行。
1. 切割与拼接
s = 'I love you more than i can say'
# 切割字符串
# sep:指定按照什么进行切割,默认按照空格切割
# maxsplit:指定最大切割次数,默认不限制次数
# ret = s.split(sep='abc', maxsplit=1)
# 从右边进行切割
ret = s.rsplit(' ', maxsplit=1)
print(ret)
s = 'Hello\nworld'
# 按照换行进行切割
print(s.splitlines())
s = 'I love you more than i can say'
ret = s.split()
# print(ret)
# 字符串拼接
s2 = '*'.join(ret)
print(s2)
# 一些零散知识
s1 = 'hello'
s2 = 'world'
# 可以使用'+'将字符串拼接在一起
s3 = s1 + s2
print(s3)
# '*'可以重复前面的字符串若干次
s4 = 'abc' * 3
print(s4)
# len函数统计字符串长度
print(len(s1))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2. 统计判断
s = 'Hi buddy, if you have something to say, than say; if you have nothing to say, than go.'
# 子串查找:找到首次出现的位置,返回下标,找不到返回-1
ret = s.find('hello')
# 从后面查找
ret = s.rfind('to')
# 统计子串出现的次数
ret = s.count('if')
# 判断是否已指定内容开头
ret = s.startswith('Hi')
# 判断是否已指定内容结尾
ret = s.endswith('go.')
print(ret)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
3. 统计判断
s = 'hellO worlD!'
# 转换为全大写
print(s.upper())
# 转换为全小写
print(s.lower())
# 大小写转换
print(s.swapcase())
# 首字母大写
print(s.capitalize())
# 每个单词首字母大写
print(s.title())
# 用指定的内容替换指定内容,还可以值替换次数
print(s.replace('l', 'L', 2))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
4. 类型判断
s = 'abcABC2'
# 是否是全大写
print(s.isupper())
# 是否是全小写
print(s.islower())
# 是否每个单词首字母都大写
print(s.istitle())
# 是否是全数字字符
print(s.isdecimal())
# 是否是全字母
print(s.isalpha())
# 是否全是字母或数字
print(s.isalnum())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
4. 切片操作
s = "Do you know the way?"
# 切片
# 格式:s[开始:结束:步进]
print(s[1:3])
# 当一边的边界省略,则提取到改侧的边缘
print(s[1:])
print(s[:4])
print(s[1:-2])
print(s[:-3])
print(s[-3:])
# 指定步进值,默认为1
print(s[::2])
# 逆序提取
print(s[::-1])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
5. 格式化输出(控制输出格式):python格式化输出有两种方式:百分号和format。format的功能要比百分号方式强大。
# %s:字符串
# %d:整型
# %f:浮点
# %c:字符
name = '二狗'
like = '大花'
age = 18
print('俺叫%s,暗恋%s,她今年%d岁' % (name, like, age))
# python中特有的解决方案
print('俺叫{},暗恋{},她今年{}岁'.format(name, like, age))
print('俺叫{2},暗恋{1},她今年{0}岁'.format(name, like, age))
print('俺叫{l},暗恋{n},她今年{a}岁'.format(n=name, l=like, a=age))
1
2
3
4
5
6
7
8
9
10
11
12
13
6.拓展——ASCII码:美国信息交换标准代码,就是用一个数字表示字符的规范。
# 字符 => ASCII
print(ord('A'))
# ASCII => 字符
print(chr(97))
---------------------
转载,仅作分享,侵删
作者:一只写代码的祁琪
原文:https://blog.csdn.net/ZKK199704/article/details/85304649
|
|