gpt4 book ai didi

Python:字符串连接在for循环中的工作方式不同

转载 作者:行者123 更新时间:2023-12-05 03:28:41 24 4
gpt4 key购买 nike

我有一个 NumPy 数组,其中包含一个包含各种长度字符串的列表:

arr = np.array(["abcd", "abcdef", "ab"])

我正在尝试遍历字符串以便将它们填充到恒定长度。如果我一次做一个,就像这样:

new_len = 10

left_pad = divmod(new_len - len(arr[0]),2)[0]
right_pad = left_pad + divmod(new_len - len(arr[0]),2)[1]

abcd = arr[0].join(["_"*left_pad, "_"*right_pad])

我得到了我想要的输出:

'___abcd___'

但是如果我尝试在一个循环中执行它,就像这样:

for i in range(arr.shape[0]):
left_pad = divmod(new_len - len(arr[i]),2)[0]
right_pad = left_pad + divmod(new_len - len(arr[i]),2)[1]
arr[i] = arr[i].join(["_"*left_pad, "_"*right_pad])

我得到了不同的输出:

array(['___abc', '__abcd', '____ab'], dtype='<U6')

我想了解为什么这两种情况下的行为不同,以及如何通过循环获得所需的输出。在此先感谢您的任何帮助或建议。

最佳答案

尝试将数组定义为对象数组,如下例所示:

arr = np.array(["abcd", "abcdef", "ab"], dtype='object')

根据您示例的输出,您创建了一个长度为 6 (dtype='

关于Python:字符串连接在for循环中的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71195180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com