我想在python中使用csv中的数据。我希望使每一列成为一个单独的字符串,我想知道是否有一种方法可以循环这个过程,这样我就不必单独指定每个字符串的名称(因为命名约定非常相似)。
对于许多csv列,我使用以下代码:
dot_title=str(row[0]).lower()
onet_title=str(row[1]).lower()对于2-11,我希望每个字符串被命名为相同的,但编号。也就是说,row2将成为一个名为onet_reported_1的字符串,row3将成为onet_reported_2,row4将成为onet_reported_3.等等,一路通到row12。
是否有一种方法可以用循环来实现这一点,而不是简单地单独定义onet_reported_1、_2、_3、_4等?
提前感谢!
发布于 2021-05-26 12:38:46
所以,首先要弄清楚。
字符串是变量类型。在Python中,通过用单引号或双引号包围一些文本来创建字符串。
"This is a string"
'So is this. It can have number characters: 123. Or any characters: !@#$'字符串是可以分配给变量的值。因此,通过给字符串取一个名称来使用它:
my_string = "This is a string"
another_string = "One more of these"您可以对字符串执行不同类型的操作,比如使用+运算符将它们连接起来。
new_string = my_string + another_string您可以创建字符串列表:
list_of_strings = [new_string, my_string, another_string]看起来像["This is a stringOne more of these", "This is a string", "One more of these"]。
要在一个循环中创建多个字符串,您需要一个存储它们的位置。一个名单是一个很好的候选人:
list_of_strings = []
for i in range(1, 11):
list.append("onet_reported_" + i)但是,我认为您想要的是将变量命名为"onet_reported_x“,这样您的结果就相当于:
onet_reported_1 = row[1]
onet_reported_2 = row[2] 以此类推,而不必键入所有多余的代码。这是个很好的本能。做这种事情的一个很好的方法是创建一个字典,其中键是您想要的字符串名称,值是row[i]的。
onet_dict = {}
for i in range(1, 11):
onet_dict["onet_reported_" + i] = row[i]或与字典的理解:
onet_dict = {"onet_reported_" + i: row[i] for i in range(1,11)}两者都会给你同样的结果。现在,您有了一个字符串集合,该字符串的名称作为dict的键,映射到您希望与之关联的行值。要使用它们,而不是直接引用名称onet_reported_x,您必须访问dict的值,如下所示:
# Adding some other value to onet_reported_5. I'm assuming the values are numbers.
onet_dict["onet_reported_5"] += 20457https://stackoverflow.com/questions/67693327
复制相似问题