3

I'm trying to build a string using ":" and then write that string to a file. Function gets two lists that include strings, which are amounts of money

[["$123,123,123", "$68,656", "$993,993,993,993", "$123,141,142,142"],
 ["$60", "$800,600", "$700,600,500", "$20,200,200,201"]]

It should be written as

"$123,123,123":"$68,656":"$993,993,993,993":"$123,141,142,142"
"$60":"$800,600":"$700,600,500":"$20,200,200,201"

Currently I have something like this:

def save_amount (amount, moneys):
    with open (moneys, "w") as file:
        for i in amount:
            moneys_s = str(i)

How to proceed?

Christian König
  • 3,437
  • 16
  • 28

3 Answers3

2

First flatten the list and then use join, Use list comprehension here :

>>> [ ':'.join('"' + j + '"' for j in i) for i in l ]
['"$123,123,123":"$68,656":"$993,993,993,993":"$123,141,142,142"',
'"$60":"$800,600":"$700,600,500":"$20,200,200,201"']
akash karothiya
  • 5,736
  • 1
  • 19
  • 29
1
'"' + '":"'.join( str(j) for i in money for j in i) + '"'

where money is your list of lists

skend
  • 51
  • 1
  • 9
1
l = [["$123,123,123", "$68,656", "$993,993,993,993", "$123,141,142,142"],
     ["$60", "$800,600", "$700,600,500", "$20,200,200,201"]]
[ ':'.join('"' + j + '"' for j in i) for i in l ]

Output:

['"$123,123,123":"$68,656":"$993,993,993,993":"$123,141,142,142"',
 '"$60":"$800,600":"$700,600,500":"$20,200,200,201"']
Transhuman
  • 3,527
  • 1
  • 9
  • 15