有没有办法将字符串从大写,甚至部分大写转换为小写?
例如公里 - >公里.
是否有理由更喜欢使用map()超过列表理解,反之亦然?它们中的任何一个通常比另一个更有效或被认为是更加pythonic?
Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。
假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y:
y = x + 1
# Or it could be in a function:
def calc_y(an_x):
return an_x + 1
Run Code Online (Sandbox Code Playgroud)
现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:
xs = [1, 3, 5]
for x in xs:
y = x + 1
Run Code Online (Sandbox Code Playgroud)
while或者,如果有其他逻辑来计算值序列,我可以使用循环x:
def next_collatz(value):
if value % 2 == 0:
return value // 2
else:
return 3 * value + 1
def collatz_from_19():
x = 19
while x != 1:
x …Run Code Online (Sandbox Code Playgroud) 我正在尝试读取 jupyter notebook 中的文本文件并获取文件中的唯一单词。
我正在将该文件作为列表读取,然后尝试对其应用小写。但该.lower()功能不适用于列表。请帮忙。
我试图转换列表的小写列表的元素.这就是看起来像.
print(dataset)
[['It', 'went', 'Through', 'my', 'shirt', 'And', 'came', 'out', 'The', 'back', 'and', 'hit', 'the', 'kid', 'behind', 'me', 'in', 'the', 'toe']]
Run Code Online (Sandbox Code Playgroud)
我试过这样做:
for line in dataset:
rt=[w.lower() for w in line]
Run Code Online (Sandbox Code Playgroud)
但是这给了我一个错误,说列表对象没有属性lower().