-1

我无法完全弄清楚这一点。

这是我当前的输出:

['Direct General Auto Insurance', 'IT Project Manager', 'Nashville', 'TN', '(615) 331-7540']
['Direct General Auto Insurance', 'IT Systems Manager', 'Nashville', 'TN', '(615) 340-6291']
['Direct General Auto Insurance', 'Junior web Developer', 'Nashville', 'TN', '(615) 399-4700']
['Grand Slam Universal, LLC', 'IT Specialist', 'Nashville', 'TN', '(615) 457-3516']
['Ingram Content Group', 'Desktop Engineer', 'La Vergne', 'TN', '(615) 793-5000']
['Direct General Auto Insurance', 'Data Scientist', 'Nashville', 'TN', '(615) 726-3091']
['Direct General Auto Insurance', 'Janitor', 'Nashville', 'TN', '(615) 831-2600']

标题是FIRMNAME, JOBTITLE, CITY, STATE, NUMBER.

对于相同FIRMNAME的 s,我需要同一行中的所有相应JOBTITLEs。因此,如果FIRMNAMEs 匹配,则将相应JOBTITLE的 s 添加到该行。

所以输出将如下所示:

['Direct General Auto Insurance', 'IT Project Manager, IT Systems Manager, Junior Web Developer, Data Scientist, Janitor', 'Nashville', 'TN', '(615) 331-7540']
['Grand Slam Universal, LLC', 'IT Specialist', 'Nashville', 'TN', '(615) 457-3516']
['Ingram Content Group', 'Desktop Engineer', 'La Vergne', 'TN', '(615) 793-5000']

我尝试遍历它并使用列表中.insert()是否已有匹配FIRMNAME项,但无法完全弄清楚逻辑。

谢谢您的帮助。

编辑

这是所需的输出:

['Direct General Auto Insurance', 'IT Project Manager, IT Systems Manager, Junior Web Developer, Data Scientist, Janitor', 'Nashville', 'TN', '(615) 331-7540']
['Direct General Auto Insurance', 'IT Project Manager, IT Systems Manager, Junior Web Developer, Data Scientist, Janitor', 'Nashville', 'TN', '(615) 340-6291']
['Direct General Auto Insurance', 'IT Project Manager, IT Systems Manager, Junior Web Developer, Data Scientist, Janitor', 'Nashville', 'TN', '(615) 399-4700']
['Direct General Auto Insurance', 'IT Project Manager, IT Systems Manager, Junior Web Developer, Data Scientist, Janitor', 'Nashville', 'TN', '(615) 726-3091']
['Direct General Auto Insurance', 'IT Project Manager, IT Systems Manager, Junior Web Developer, Data Scientist, Janitor', 'Nashville', 'TN', '(615) 831-2600']
['Grand Slam Universal, LLC', 'IT Specialist', 'Nashville', 'TN', '(615) 457-3516']
['Ingram Content Group', 'Desktop Engineer', 'La Vergne', 'TN', '(615) 793-5000']

我想保留所有数字。

4

1 回答 1

1

使用 dict 索引表。对于每一行,检查您是否已经看过该公司并在那里进行插入。如果您需要变得更复杂(例如,同一家公司具有不同的位置),那么索引键可以成为唯一信息的元组。

my_list = [
    ['Direct General Auto Insurance', 'IT Project Manager', 'Nashville', 'TN', '(615) 331-7540'],
    ['Direct General Auto Insurance', 'IT Systems Manager', 'Nashville', 'TN', '(615) 340-6291'],
    ['Direct General Auto Insurance', 'Junior web Developer', 'Nashville', 'TN', '(615) 399-4700'],
    ['Grand Slam Universal, LLC', 'IT Specialist', 'Nashville', 'TN', '(615) 457-3516'],
    ['Ingram Content Group', 'Desktop Engineer', 'La Vergne', 'TN', '(615) 793-5000'],
    ['Direct General Auto Insurance', 'Data Scientist', 'Nashville', 'TN', '(615) 726-3091'],
    ['Direct General Auto Insurance', 'Janitor', 'Nashville', 'TN', '(615) 831-2600'],
]

index = {}

for item in my_list:
    existing = index.get(item[0])
    if not existing:
        index[item[0]] = item
        # or this, if you want don't want to modify the existing table
        # index[item[0]] = item[:]
    else:
        existing.insert(1, item[1])

for item in sorted(index.values()):
    print item

编辑

您的编辑结果完全不同 - 您希望将所有工作插入公司的每个原始条目中。在这种情况下,我们只需要建立每个公司的工作列表,然后返回原始列表并插入它们。

import collections

my_list = [
    ['Direct General Auto Insurance', 'IT Project Manager', 'Nashville', 'TN', '(615) 331-7540'],
    ['Direct General Auto Insurance', 'IT Systems Manager', 'Nashville', 'TN', '(615) 340-6291'],
    ['Direct General Auto Insurance', 'Junior web Developer', 'Nashville', 'TN', '(615) 399-4700'],
    ['Grand Slam Universal, LLC', 'IT Specialist', 'Nashville', 'TN', '(615) 457-3516'],
    ['Ingram Content Group', 'Desktop Engineer', 'La Vergne', 'TN', '(615) 793-5000'],
    ['Direct General Auto Insurance', 'Data Scientist', 'Nashville', 'TN', '(615) 726-3091'],
    ['Direct General Auto Insurance', 'Janitor', 'Nashville', 'TN', '(615) 831-2600'],
]

index = collections.defaultdict(list)

# generate list of jobs per firm
for item in my_list:
    index[item[0]].append(item[1])

# insert into existing table
for item in my_list:
    del item[1]
    item[1:2] = index[item[0]]

for item my_list:
    print item
于 2014-12-10T17:47:08.463 回答