插入两个字符串的最pythonic方式
将两个字符串网格化的最Python方式是什么?
例如:
输入:
u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
l = 'abcdefghijklmnopqrstuvwxyz'
输出:
'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
-
对我来说,最pythonic *的方式是以下代码,它 几乎做同样的事情, 但是使用
+
运算符来连接每个字符串中的各个字符:res = "".join(i + j for i, j in zip(u, l)) print(res) # 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
它也比使用两个
join()
调用更快:In [5]: l1 = 'A' * 1000000; l2 = 'a' * 1000000 In [6]: %timeit "".join("".join(item) for item in zip(l1, l2)) 1 loops, best of 3: 442 ms per loop In [7]: %timeit "".join(i + j for i, j in zip(l1, l2)) 1 loops, best of 3: 360 ms per loop
存在更快的方法,但是它们常常使代码模糊。
注: 如果两个输入字符串是 不 相同的长度,则较长的一个将被截断,
zip
停在较短字符串的结尾迭代。在这种情况下,zip
应该使用模块中的
zip_longest
(
izip_longest
在Python
2中)而不是一个itertools
来确保两个字符串都已用尽。
引用 Python之禅 : 可读性很重要 。
Pythonic =对我而言 可读性* ;i + j
至少对于我的眼睛来说,更容易从视觉上进行解析。
-
Python:比较两个字符串
2021-01-29 关注 0 浏览151 1答案
-
比较两个字符串是否相同,最佳方式是?
2022-03-03 关注 0 浏览37 1答案
-
将字符串拆分为几个两个字符串
2021-01-30 关注 0 浏览97 1答案
-
在两个字符串之间替换一个字符串
2021-01-30 关注 0 浏览112 1答案
-
查找两个字符串之间的公共子字符串
2021-01-31 关注 0 浏览102 1答案
-
替换/删除两个字符之间的字符串
2021-01-30 关注 0 浏览90 1答案
-
删除字符串中的最后两个字符
2021-01-31 关注 0 浏览78 1答案
-
从两个字符之间获取字符串
2021-01-29 关注 0 浏览109 1答案
-
检测两个字符串之间的差异
2021-01-31 关注 0 浏览129 1答案
-
Java中两个字符串的交集
2021-01-31 关注 0 浏览93 1答案