如何使用 map() 将列表中每个字符串的每个字符增加三倍,而不是将列表中的每个字符串增加三倍?
How can I use map() to triple each character of each string in a list, rather than tripling each string in the list?
我有以下 list
:
eight_bit_binary = ['01101000', '01100101', '01111001']
我想将 eight_bit_binary
中的每个项目增加三倍,因此对于“01101000”->“000111111000111000000000”;第二项和第三项也一样。
在我看来,我知道以下内容不太有效,但它接近我所追求的:
eight_bit_binary = map(lambda n:n*3, eight_bit_binary)
它产生“01101000”->“011010000110100001101000”,这当然不是我想要的。
我怎样才能调整它以使其按照我的意愿运行?我知道一定有一些 for 循环,但我不太明白。任何帮助都会很棒!
您的 map(, eight_bit_binary)
将逻辑应用于 eight_bit_binary
的每个值,您希望将该逻辑应用于每个值的元素,您需要第二级迭代
eight_bit_binary = ['01101000', '01100101', '01111001']
eight_bit_binary = ["".join(map(lambda n: n * 3, e)) for e in eight_bit_binary]
print(eight_bit_binary)
# ['000111111000111000000000', '000111111000000111000111', '000111111111111000000111']
map()
允许您访问和更改列表的每个元素。然后,您需要通过再次调用 map()
.
来访问这些字符串的每个成员
binary = ['01101000', '01100101', '01111001']
longer = list(map(lambda n: ''.join(map(lambda x: x*3, n)), binary))
另请注意,我可能会在此处使用列表理解而不是直接调用 map()
:
[''.join(x*3 for x in b) for b in binary]
eight_bit_binary = ['01101000', '01100101', '01111001']
eight_bit_binary = [''.join([c*3 for c in item]) for item in eight_bit_binary]
print(eight_bit_binary)
结果为:
['000111111000111000000000', '000111111000000111000111', '000111111111111000000111']
我有以下 list
:
eight_bit_binary = ['01101000', '01100101', '01111001']
我想将 eight_bit_binary
中的每个项目增加三倍,因此对于“01101000”->“000111111000111000000000”;第二项和第三项也一样。
在我看来,我知道以下内容不太有效,但它接近我所追求的:
eight_bit_binary = map(lambda n:n*3, eight_bit_binary)
它产生“01101000”->“011010000110100001101000”,这当然不是我想要的。
我怎样才能调整它以使其按照我的意愿运行?我知道一定有一些 for 循环,但我不太明白。任何帮助都会很棒!
您的 map(, eight_bit_binary)
将逻辑应用于 eight_bit_binary
的每个值,您希望将该逻辑应用于每个值的元素,您需要第二级迭代
eight_bit_binary = ['01101000', '01100101', '01111001']
eight_bit_binary = ["".join(map(lambda n: n * 3, e)) for e in eight_bit_binary]
print(eight_bit_binary)
# ['000111111000111000000000', '000111111000000111000111', '000111111111111000000111']
map()
允许您访问和更改列表的每个元素。然后,您需要通过再次调用 map()
.
binary = ['01101000', '01100101', '01111001']
longer = list(map(lambda n: ''.join(map(lambda x: x*3, n)), binary))
另请注意,我可能会在此处使用列表理解而不是直接调用 map()
:
[''.join(x*3 for x in b) for b in binary]
eight_bit_binary = ['01101000', '01100101', '01111001']
eight_bit_binary = [''.join([c*3 for c in item]) for item in eight_bit_binary]
print(eight_bit_binary)
结果为:
['000111111000111000000000', '000111111000000111000111', '000111111111111000000111']