Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

Create a coordinate pair from this code

Writer Andrew Mclaughlin

Here is my current code

a_reader = None
a_reader = open('data.csv', 'rU')
a_csv_reader = csv.reader(a_reader)
for row in a_csv_reader: print row
a_reader.close()
count = 0
sum = 0.0
a_reader = open('data.csv', 'rU')
a_csv_reader = csv.reader(a_reader)
a_csv_reader.next()
for row in a_csv_reader: if count != 0 and row[0] != '': sum = sum + float(row[0]) count = count + 1
a_reader.close()
print 'Number of lines is:',count
print 'Sum is:',sum
return listStation

This produces the results below

['1', '476050', '7709929']
['2', '473971', '7707713']
['3', '465676', '7691097']
['4', '515612', '7702192']
['5', '516655', '7704405']
['6', '519788', '7713255']
['7', '538466', '7683341']
Number of lines is: 8
Sum is: 28.0

Ok so the output that I want is shown below in a double list.

[[476050, 7709929],[473971, 7707713],[465676, 7691097],[515612, 7702192],[516655, 7704405],[519788, 7713255],[538466, 7683341]]

How can I alter my code to produce the result as a double list as shown above. Is it possible to create a doublelist of coordinate pairs as shown above. Can you help me?

Any help is appreciated.

3 Answers

Slice off the last two elements, then append.

>>> ['1', '476050', '7709929'][1:3]
['476050', '7709929']
5
import csv
import itertools
with open('data.csv') as f: reader = csv.reader(f) rows = [] total = 0 for row in itertools.islice(reader, 1, None): # Skip a header if row[0]: total += int(row[0]) rows.append(row[1:])
print 'Number of lines is:', len(rows)
print 'total is', total
print rows

Instead of:

for row in a_csv_reader: print row

Use a list comprehension to slice the list:

for i in [row[-2:] for row in a_csv_reader]: print i

Which prints:

['476050', '7709929']
['473971', '7707713']
['465676', '7691097']
['515612', '7702192']
['516655', '7704405']
['519788', '7713255']
['538466', '7683341']

So thus [row[-2:] for row in a_csv_reader] is:

[['476050', '7709929'], ['473971', '7707713'], ['465676', '7691097'], ['515612', '7702192'], ['516655', '7704405'], ['519788', '7713255'], ['538466', '7683341']]

Which is your expected output.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.