从列表创建嵌套列表

Creating a nested list from a list

我有一个包含 Twitter 用户和关注者列表的文本文件。它在第一个元素和关注者中有 Twitter 用户,看起来像下面这样:

(user, follwer1,follower2,follower3,....)

我打算使用 networkx 对此进行一些分析,但在此之前我需要将数据重新格式化为具有 2 列的 csv,其中第 1 列是用户(因此这将是重复的用户 ID在每一行)和列 b 将是跟随者(见下文):

| User | Follower |
| -----|--------- |
| user | Folower1 |
| user | Folower2 |

最初所有数据都存储为字符串,因此我将其转换为列表。我想做的是将其转换为嵌套列表,看起来像:

[[user,follower],[user,follower2],[user,follower3]....]

然后转换为datframe,然后将其写入csv文件。我在创建嵌套循环时遇到了问题,我似乎无法正确地将原始列表的第一个元素添加到新的嵌套列表中。这是我到目前为止尝试过的

lines = [] #original list
matrix = [] #nested list

matrix.append([]) #append blank list
for line in lines:  #loop through lines in text file
    line = list(line.split(',')) #split line by commas to create a list
    line1 = line[0] #create variable that contains user id i.e. first element of list

    for i in range(len(line)): #loop through list
        matrix[i]= line(i)
        matrix[i].append(line1)

提前致谢

这会有帮助吗?

lists=["user","follower1","follower2","follower3"]
matrix=[]
for x in lists:
   if(lists[0]!=x):
    matrix.append([lists[0],x])
print(matrix)

你可以这样做:

user_data = ["user1,follower1,follower2", "user2,follower3,follower4"]
matrix = []

for entry in user_data:
   all_users = entry.split(',')
   user = all_users[0]
   followers = all_users[1:]
   
   for follower in followers:
      matrix.append([user, follower])

在这种情况下矩阵将包含:

[
   ["user1", "follower1"], 
   ["user1", "follower2"], 
   ["user2", "follower3"], 
   ["user2", "follower4"]
]

如果您还有任何问题,请告诉我。