在python中将字符串列表与数字数组连接起来的最简单方法是什么

我不敢相信我一直在试图找出这个非常基本的问题有多久了,而且我似乎无法在这里通过论坛找到正确的答案,所以我就把它扔掉了,因为我是确保这可以通过简单的代码行来解决:


我正在尝试在我的数据框上生成一个新列,其中包含随机唯一标识符q+ 一些 5 位数字。因此,例如,一个这样的 ID 将是q12345.


到目前为止,我的方法是:(1)生成一个数字数组,(2)一个相同长度的q字符列表,然后(3)尝试将它们组合成一个数组,我会( 4)添加到我的数据框。我已经很容易地完成了第一步和第二步,但我似乎无法让第三步工作。


我将不胜感激(a)如何执行第 3 步以及(b)更简单的方法来执行此操作的任何提示,我确信我忽略了这一点。


我在 python 3.4中尝试了 Concatenate string 和 int 中的各种方法,并且可以让它适用于单个元素,但不适用于整个数组。


所以,到目前为止,我有:


sample_length = 10 #for example


values = np.random.randint(low=10000, high= 15000, size = sample_length)


q = ['q'] * sample_length


噜噜哒
浏览 256回答 3
3回答

泛舟湖上清波郎朗

您可以使用列表理解将它们组合成一个数组,如下所示:sample_length = 10values = np.random.randint(low=10000, high= 15000, size = sample_length)# Do this column = ['q' + str(i) for i in values ]如果上面的代码太多而无法为您解压,请参阅:sample_length = 10values = np.random.randint(low=10000, high= 15000, size = sample_length)columns = []for i in values:     columns.append('q' + str(i))两个代码片段都做同样的事情。希望这可以帮助...!

慕森王

import random as rand print("q"+str(rand.randint(10000,100000)))

拉莫斯之舞

几乎一个班轮将是:sample_length = 10coloumns = ["q" + "".join(uniqueNumbers) for uniqueNumbers in list(map(lambda generatedNumbers: [str(number) for number in generatedNumbers], [random.randint(0, 9, 5) for _ in range(sample_length)]))]为了更好的可读性:sample_length = 10coloumns = [    "q" + "".join(uniqueNumbers) for uniqueNumbers in list(        map(            lambda generatedNumbers: [                str(number) for number in generatedNumbers            ],            [                random.randint(0, 9, 5) for _ in range(sample_length)            ]        )    )]在这种情况下,id 可以以 0 开头。更好的方法如下,因为我猜每个数字都应该是唯一的:sample_length = 10def getNumbers():    return "".join(list(map(lambda number: str(number), random.randint(0, 9, 5))))numbers = []while len(numbers) != sample_length:    newNumbers = getNumbers()    if newNumbers not in numbers:        numbers.append(newNumbers)coloumns = ["q" + "".join(uniqueNumbers) for uniqueNumbers in numbers]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python