弹出空场

时间:2014-08-25 14:24:05

标签: python pop

我有一些凌乱的IMBD数据。

我正在运行一个脚本来隔离明确的字段 - id,year和rank - 并用引号括住剩余的名称字段。

我想修改脚本,在缺少数据的地方的'rank'字段中放置0。如果没有此更改,pop函数将无法考虑该字段,从而影响脚本计算和压缩名称字段的方式。

如何在“排名”字段中添加0,目前什么都没有?

以下是数据的快照。

id,name,year,rank
0,#28 (2002),2002,
1,#7 Train: An Immigrant Journey, The (2000),2000,
2,$ (1971),1971,6.4000000000000004
3,$1,000 Reward (1913),1913,
4,$1,000 Reward (1915),1915,
5,$1,000 Reward (1923),1923,
6,$1,000,000 Duck (1971),1971,5
7,$1,000,000 Reward, The (1920),1920,
8,$10,000 Under a Pillow (1921),1921,
9,$100,000 (1915),1915,
10,$100,000 Pyramid, The (2001),2001,
11,$1000 a Touchdown (1939),1939,6.7000000000000002

这是我的工作脚本。

f = open("IMDBMovie.txt")
print(next(f)) # header
for line in f:
    fields = line.strip().split(",")

    # Get unambiguous fields.
    id = fields.pop(0)
    rank = fields.pop(-1)
    year = fields.pop(-1)

    # Surround name with quotes.
    name = '"{}"'.format(",".join(fields))
    print("{},{},{},{}".format(id, name, year, rank))

1 个答案:

答案 0 :(得分:1)

使用该语法:

print("{},{},{},{}".format(id, name, year, rank if rank else 0))
#                                          ^^^^^^^^^^^^^^^^^^^

这是ternary operator的Python版本。