2016-09-09 7 views
0

,Wie erstellt man eine Liste von Listen in Python? Angenommen

range(len(column)) = 4 
column = ['AAA', 'CTC', 'GTC', 'TTC'] 
for i in range(len(column)): 
    a = list(column[i]) 

Außerhalb dieser Schleife ich eine Variable wollen, sagen x so zugeordnet werden, dass es die folgende Ausgabe gibt.

['A', 'A', 'A'] 
['C', 'T', 'C'] 
['G', 'T', 'C'] 
['T', 'T', 'C'] 

Nachdem dies zu tun, hier ist das, was sollte ich in der Lage sein zu tun: Im Nächstes möchte ich innerhalb von x vergleichen. Sprich x [2], um mir zu sagen, ob 'G' sich von 'T' unterscheidet und wenn 'G' sich von 'C' unterscheidet und wenn 'T' sich von 'C' unterscheidet

Antwort

1

Ich glaube, du bist in Not eine Liste von Listen

Code:

column = ['AAA', 'CTC', 'GTC', 'TTC'] 
x=[] 
for i in range(len(column)): 
    a = list(column[i]) 
    x.append(a) 

print x 

Ausgang:

[['A', 'A', 'A'], ['C', 'T', 'C'], ['G', 'T', 'C'], ['T', 'T', 'C']] 
0

Es ist nicht ganz klar, welche Art von Vergleich wollen Sie tun, wenn Sie Ihre Daten formatiert haben, aber dies ist etwas

import numpy as np 

alt_col = [list(y) for y in column] 
x = np.asarray(alt_col) 

Sie können dann, was Sie innerhalb des Arrays

print all(x[1, :] == x[2, :]) 
0

Schnell x wollen vergleichen, ohne numpy oder ein anderes externes Modul erstellen:

column = ['AAA', 'CTC', 'GTC', 'TTC'] 
x = [list(column[i]) for i in range(len(column))] 
print(x) 

Ausgang:

[['A', 'A', 'A'], ['C', 'T', 'C'], ['G', 'T', 'C'], ['T', 'T', 'C']] 

Zu Ihnen u Dazu benötigen Sie zwei Indizes: Sie können sich vorstellen, dass die erste Zeile die Zeile darstellt und die zweite die Spalte. Zum Beispiel ist die 'G' in x[2][0]. Sie können es mit jeder anderen Zelle in x mit der gleichen Notation vergleichen.

0
inputs = ['ABC','DEF','GHI'] # list of inputs 
outputs = [] # creates an empty list to be populated 
for i in range(len(inputs)): # steps through each item in the list 
    outputs.append([]) # adds a list into the output list, this is done for each item in the input list 
    for j in range(len(inputs[i])): # steps through each character in the strings in the input list 
     outputs[i].append(inputs[i][j]) # adds the character to the [i] position in the output list 

outputs 
[['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']] 

bearbeiten Kommentare hinzugefügt, was jede Zeile

+0

tut Während dieses Code die Frage beantworten kann, zusätzlichen Kontext in Bezug auf, warum und/oder wie dieser Code beantwortet die Frage ihren langfristigen Wert verbessert. Code-only-Antworten werden nicht empfohlen. – Ajean

Verwandte Themen