为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

噜噜哒 2022-06-28 10:46:39
我不敢相信我一直在试图找出这个非常基本的问题有多久了,而且我似乎无法在这里通过论坛找到正确的答案,所以我就把它扔掉了,因为我是确保这可以通过简单的代码行来解决:我正在尝试在我的数据框上生成一个新列,其中包含随机唯一标识符q+ 一些 5 位数字。因此,例如,一个这样的 ID 将是q12345.到目前为止,我的方法是:(1)生成一个数字数组,(2)一个相同长度的q字符列表,然后(3)尝试将它们组合成一个数组,我会( 4)添加到我的数据框。我已经很容易地完成了第一步和第二步,但我似乎无法让第三步工作。我将不胜感激(a)如何执行第 3 步以及(b)更简单的方法来执行此操作的任何提示,我确信我忽略了这一点。我在 python 3.4中尝试了 Concatenate string 和 int 中的各种方法,并且可以让它适用于单个元素,但不适用于整个数组。所以,到目前为止,我有:sample_length = 10 #for examplevalues = np.random.randint(low=10000, high= 15000, size = sample_length)q = ['q'] * sample_length
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您可以使用列表理解将它们组合成一个数组,如下所示:


sample_length = 10

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

# Do this 

column = ['q' + str(i) for i in values ]

如果上面的代码太多而无法为您解压,请参阅:


sample_length = 10

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

columns = []

for i in values:

     columns.append('q' + str(i))

两个代码片段都做同样的事情。

希望这可以帮助...!


查看完整回答
反对 回复 2022-06-28
?
慕森王

TA贡献1777条经验 获得超3个赞

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


查看完整回答
反对 回复 2022-06-28
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

几乎一个班轮将是:


sample_length = 10

coloumns = ["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 = 10

coloumns = [

    "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 = 10

def 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]


查看完整回答
反对 回复 2022-06-28
  • 3 回答
  • 0 关注
  • 255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信