2017-11-18 6 views
0

ユニークな番号のリストを作成しようとしていますが、出力が間違っています。ユニークな番号のリストを作成する

各行に2つの数字があるファイルからそれぞれ固有の番号を取得したい: friends = ['4 6'、 '4 7'、 '4 8'、 '5 9'、 '6 8' '7,8'、 '100 112'、 '112 114'、'78 44 ']

回答: ユーザー= [' 4 '、' 6 '、' 7 '、' 8 '、' 44 ' ['0'、 '1'、 '2'、 '4'、 '5'、 '6'の出力は、 '78'、 '100'、 '112'、 '114']

'、' 7 '、' 8 '、' 9 ']代わりに

私のコードが2桁と3桁の数字をファイルに認識させる方法は不明ですが、基本的にはこれは私の問題

user=[] 
for row in friends: 
    for column in row: 
      if column not in user and column.isdigit(): 
       user.append(column) 

    user.sort() 
print(user) 

*私は辞書を使用することはできないのです、セット、両端キュー、このようなモジュール

+1

数字は文字列とのpythonです:)ありがとう、あなたがする必要があります比較を行う前に値を 'int'に変換してください。 – davedwards

+0

@downshiftこれをやろうとしましたが、数字の間のスペースのためにエラーが発生しました。値を変換して構造を維持する方法を教えてください。 –

+0

@ h-gこれらの2つのステップを試してください: 'temp = map(lambda x:x.split()、friends)'、次に 'numbers in [xの文字のint(文字)]。次に、 '' [4,6]、[4,7]、[4,8]、[5,9]、[6,8]、[7,8]、 [100,112]、[112,114]、[78,44]]。これらは現在 'int'のリストのリストですが、好きなように数字を構造化することができます。 – davedwards

答えて

1

何か二分:

friends=['4 6', '4 7', '4 8', '5 9', '6 8', '7 8', '100 112', '112 114', '78 44'] 

def get_numbers(mylist): 
    nums = []       # create a new list 
    for i in mylist:      # for each pair in the friends list 
     nums.append(map(int, i.split())) # split each pair 
             # convert them to integers 
             # and append them to the new list 
    return nums       # return the new list 

numbers = get_numbers(friends)   # call the function with the old list 

その後、あなたが行うことができます:

print(numbers) 
[[4, 6], [4, 7], [4, 8], [5, 9], [6, 8], [7, 8], [100, 112], [112, 114], [78, 44]] 

これをあなたが始めるのを助けるはずです。あなたが立ち往生した場合は、コメントを投稿して、更新することができます。

+0

私はマップにも慣れていません。私は2つの関数を作成する必要があることを意味する1)各ペアを分割する2)数値整数を作る –

1

@downshift、私はそれを持っていると思います!文字列ではなく、ファイルの内容を読み取る(int` `のような)数字としてそれらを扱う( '4 6'``など)引用符で囲まれた

def get_numbers(mylist): 
    nums = [] 
    for i in mylist:      
     nums.append(i.split()) 
     for i in range(len(nums)): 
      for j in range(len(nums[0])): 
       nums[i][j]= int(nums[i][j]) 
    return nums 

print(get_numbers(mylist)) 
+0

素晴らしい仕事!はい、あなたはそれを持っている:) – davedwards

関連する問題