Python处理字符串和列表元组的小技巧

枫铃3年前 (2021-09-30)Python221

变量值互换

a = 1
b = 100
# 变量值互换
a, b = b, a

print('a:', a)
print('b:', b)

输出结果:

a: 100
b: 1

多个变量赋值

a, b, c = 1, 2, 3

print(a, b, c)

输出结果:

1 2 3

join()方法

使用join()方法可以将字符串或者列表元组,按照指定的间隔字符串合成一个新的字符串。

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
string = 'Hello World'
joined_string = '~'.join(string)

date_list = ['2020', '12', '12']
joined_list_string = '-'.join(date_list)

print(joined_string)
print(joined_list_string)

输出结果:

H~e~l~l~o~ ~W~o~r~l~d
2020-12-12

字符串切割split()

name = 'Miles,Tony,Mary'
# 以逗号切割
print(name.split(','))

sentences = '''
Miles is male, age is 24
Tony is male, age is 37
Mary is female, age is 15
'''
# 先去掉字符串头尾的空格,然后以换行符切割
print(sentences.strip().split('\n'))

输出结果:

['Miles', 'Tony', 'Mary']
['Miles is male, age is 24', 'Tony is male, age is 37', 'Mary is female, age is 15']

三元表达式

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
point = 34
# 如果分数大于等于60就通过,否则不通过
status = 'pass' if point >= 60 else 'fail'

print(status)

输出结果:

fail

列表推导式

li = [10, 23, 45, 68, 79, 91] # 取出li列表中大于60的元素并乘以10组成一个新列表
new_li = [i*10 for i in li if i > 60]

print(new_li)

输出结果:

[680, 790, 910]

遍历列表逆序

li = [1, 2, 3, 4, 5]
for i in reversed(li):
    print(i)

输出结果:

5
4
3
2
1

列表去重

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
li = [1, 2, 3, 1, 2, 3]
# 将列表转换为集合自动去重,再转回列表
li = list(set(li))

print(li)

输出结果:

[1, 2, 3]

with关键字 在执行完with代码块中的代码,系统会自动调用close()方法,哪怕代码报异常。

# 离开with代码块后自动调用
file.close() 
with open('test.txt') as file: 
	file.read() 

enumerate枚举函数 用于枚举可迭代对象,同时返回下标索引。

li = ['Miles', 'Tony', 'Mary']

for index, name in enumerate(li):
    print(index, name)

输出结果:

0 Miles
1 Tony
2 Mary

列表元组解包

li = [1, 2, 3, 4]

var1, var2, var3, var4 = li
print(var1, var2, var3, var4)
print('--------')

first, *mid, last = li
print(first)
print(mid)
print(last)

输出结果:

1 2 3 4
--------
1
[2, 3]
4

字符串填充对齐

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
left = 'left'.ljust(20, '*')
mid = 'mid'.center(20, '*')
right = 'right'.rjust(20, '*')

print(left)
print(mid)
print(right)

输出结果:

left****************
********mid*********
***************right

zip()同步处理多个列表

name_list = ['Miles', 'Tony', 'Mary']
gender_list = ['male', 'male', 'female']
age_list = [24, 37, 15]

for name, gender, age in zip(name_list, gender_list, age_list):
    print('%s is %s, age is %d' % (name, gender, age))

输出结果:

Miles is male, age is 24
Tony is male, age is 37
Mary is female, age is 15

all()和any() 对于all(),可迭代参数中所有元素都为True则返回True,即只要有一个元素为空、0或者False,就返回False.

注意空串,空列表元组,all()返回为True! 对于any(),和all()正好相反,只有可迭代参数中有一个元素为True就返回True,否则返回False.

all('abc')                  # True
all(['a', 'b', 'c'])        # True
all(['', 'x', 'y'])         # False
all([1, 2, 3])              # True
all([0, 1, 2])              # False
# 注意空串,空列表元组,all()返回为True
all([])                     # True
all(())                     # True
all('')                     # True

any('')                     # False
any([])                     # False
any(())                     # False
any(['', 'x', 'y'])         # True
any([0, 1, 2])              # True
any([0, '', False])         # False

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。