【发布时间】:2017-04-19 23:00:03
【问题描述】:
我有一个问题:
在社交网络中:
- 任何用户都可以发布原创内容
- 任何用户都可以转发原创内容或其他用户的转发
- 任何用户都可以关注任何其他用户
社交网络数据以 CSV 文件表示,格式如下:
postId, repostId, followers
1, -1, 120
2, 1, 60
3, 1, 30
4, 2, 90
5, 3, 40
6, 4, 10
7, -1, 240
8, 7, 190
9, 7, 50
地点:
- postId - 帖子或转发的 ID
- repostId - 被转发的内容的 ID,如果这是原始帖子,则为 -1
- 关注者 - 发布帖子的用户拥有的关注者数量
编写一个程序来分析这个社交网络,以输出任何原创内容达到的观众数量。例如,对于用户 1 和 7,输出将是:
1:350
7:480
我的动机是在 CSV 文件打开时从单元格中读取,然后如果单元格小于零,那么我知道这是一个独特的帖子。但是,这会使部分总和不完整,因此我正在查看行中的指定值是否与条件匹配。
我的解决方案:
# import csv module
import csv
# ensure path to csv file is apporpriate in temp
with open("filepath", 'rb') as f:
reader = csv.DictReader(f)
rows = [row for row in reader if row['repostId'] <= '0'] # go through each row of repostId, looking for a negative value
# for each iteration of rows, print the number of corresponding followers
for followers in rows:
print followers
【问题讨论】:
-
你有什么问题?你的解决方案有问题吗? “对于用户 1 和 7”,您的意思是“对于帖子 1 和 7 及其转发?
标签: python csv if-statement conditional