我有一份清单
my_list = [['1996', 0.23, 0.56], ['1997', 0.45, 0.32], ['1996', 0.15, 0.34],['1997', 0.34, 0.13]]
我需要将其写为文本文件,使其看起来像
1996|Area|None|0.23|0.56
1997|Area|None|0.45|0.32
1996|Area|Metro|0.15|0.34
1997|Area|Metro|0.34|0.13
我写了以下代码
for data in my_list:
data.insert(1, Area)
data.insert(2, None)
file.write("|".join(map(str, data)) + '\n')
然而,这并没有给我正确的输出,我如何更改“无”#39;价值#34; Metro"每当我遇到' 1996'试。
感谢您的帮助
答案 0 :(得分:2)
您应该创建一个临时 scala.reflect.internal.FatalError: class StringContext does not have a member f
[info] at scala.reflect.internal.Definitions$DefinitionsClass.fatalMissingSymbol(Definitions.scala:1236)
[info] at scala.reflect.internal.Definitions$DefinitionsClass.$anonfun$getMember$1(Definitions.scala:1259)
[info] at scala.reflect.internal.Definitions$DefinitionsClass.getMember(Definitions.scala:1254)
[info] at scala.reflect.internal.Definitions$DefinitionsClass.getMemberMethod(Definitions.scala:1288)
[info] at scala.reflect.internal.Definitions$DefinitionsClass$RunDefinitions.StringContext_f$lzycompute(Definitions.scala:1477)
[info] at scala.reflect.internal.Definitions$DefinitionsClass$RunDefinitions.StringContext_f(Definitions.scala:1477)
[info] at scala.tools.reflect.FastTrack.$anonfun$fastTrackCache$1(FastTrack.scala:53)
[info] at scala.reflect.internal.SymbolTable$perRunCaches$$anon$1.apply(SymbolTable.scala:395)
[info] at scala.tools.reflect.FastTrack.contains(FastTrack.scala:20)
[info] at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:1388)
(或list
)来跟踪添加的年份,并相应地设置“无”和“地铁”:
因此,您的代码应该是:
set
答案 1 :(得分:1)
使用一套,这样您就可以知道数据中已存在哪些年份。
year_set = set()
for data in my_list:
data.insert(1, Area)
if data[0] in year_set:
data.insert(2, 'Metro')
else:
data.insert(2, None)
year_set.add(data[0])
file.write("|".join(map(str, data)) + '\n')