質問編集履歴

1

監督、審判などのあいまいな表現を避け、名前をすべてアルファベット一文字に変更して見やすくしました。

2023/05/18 05:13

投稿

genbara
genbara

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,31 +1,25 @@
1
1
  ### 実現したいこと
2
2
 
3
- lists = { ('田中', '山田 '): { '鈴木 ', '佐藤 ' },('伊藤', '鈴木 '): { '佐藤', '山田' },('佐藤', '田中 '): { '鈴木 ' }}
3
+ mydict = { ('A', 'B'): { 'G', 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
4
+ 上記のような辞書を与えられたとき重複している値を修正して以下のようなそれぞれのキーに一意の値が割り当てられている形に変更したいです。🙇‍♂️
4
- 上記のようなリストを与えられたとき ('田中', '山田 '): { '鈴木 ', '佐藤 ' }のように():{}をひとまとまりにして{}ないを()の監督にしたいです。
5
+ mydict = { ('A', 'B'): { 'H' },('C', 'D'): { 'I' },('E', 'F'): { 'G' }}
5
6
 
6
- lists = { ('田中', '山田 '): { '佐藤 ' },('伊藤', '鈴木 '): {'山田' },('佐藤', '田中 '): { '鈴木 ' }}
7
- このように監督はいわゆるキーとして設定したいため、重複している要素を取り除きたいです。🙇‍♂️
8
7
  ### 前提
9
8
  importはなしでお願いします💦
10
9
 
11
10
  手順:
12
- #入力リスト
13
- lists = { ('田中', '山田 '): { '鈴木 ', '佐藤 ' },('伊藤', '鈴木 '): { '佐藤', '山田' },('佐藤', '田中 '): { '鈴木 ' }}
11
+ mydict = { ('A', 'B'): { 'G', 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
14
12
 
15
- #リスト内で重複していてペアがいるものを探してもしいたら消す。
13
+ #辞書内で重複していてペアがいるものを探してもしいたら消す。
16
- この場合リスト{'鈴木 '}を消してしまうとリスト減ってしますので{'鈴木 ', '佐藤 '}の'鈴木'をけす。
14
+ { 'G' }を消してしまうと('E', 'F')なくなるので('A', 'B')の値{ 'G', 'H' }の'G'をけす。
17
- lists = { ('田中', '山田 '): { '佐藤 ' },('伊藤', '鈴木 '): { '佐藤', '山田' },('佐藤', '田中 '): { '鈴木 ' }}
15
+ mydict = { ('A', 'B'): { 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
18
16
 
19
- #上記のことを繰り返す。
20
- この場合リスト('G')を消してしまうとリスト減ってしますので('G', 'J')の'G'をけす。
17
+ 値{ 'H' }を消してしまうと('A', 'B')なくなるので('C', 'D')の値{ 'I', 'H' }の'H'をけす。
21
- lists = { ('田中', '山田 '): { '佐藤 ' },('伊藤', '鈴木 '): {'山田' },('佐藤', '田中 '): { '鈴木 ' }}
18
+ mydict = { ('A', 'B'): { 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
22
19
 
23
- 上記の手順をいくつかの同じようなリストで試せるようにしたいです。
20
+ 上記の手順をいくつかの同じような辞書で試せるようにしたいです。
24
- また、以下のような一意にできないリストの場合はNoneを返したいです。
21
+ また、以下のような値を一意にできない辞書の場合はNoneを返したいです。
25
- liats = { ('田中', '鈴木 '): { '佐藤 ', '伊藤' },
22
+ mydict = { ('A', 'B'): { 'E' },('C', 'D'): { 'E' }}
26
- ('佐藤', '山田 '): { '伊藤', '田中' },
27
- ('伊藤', '田中'): { '佐藤 ' },
28
- ('山田 ', '田中'): set()}
29
23
 
30
24
  長くなりましたがよろしくお願いします。🙇‍♂️
31
25
  ### 発生している問題・エラーメッセージ
@@ -37,10 +31,10 @@
37
31
  ### 該当のソースコード
38
32
 
39
33
  ```python
40
- #試合するプレイヤーを抽出
34
+ #ーを格納
41
35
  newlist = {}
42
36
 
43
- #審判を抽出
37
+ #を抽出
44
38
  new_list = {}
45
39
  for item_set in games.values():
46
40
  new_list.append(list(item_set))
@@ -55,13 +49,13 @@
55
49
 
56
50
  i = 0
57
51
  for step in len(new_list ):
58
- newlist[i] = {result[i]}#埋め込む
52
+ newlist[i] = {result[i]}#重複ていない値を埋め込む
59
53
  i = i + 1
60
54
  ```
61
55
 
62
56
  ### 試したこと
63
-
57
+ 該当のソースコードではキーと値を一度分解して値が重複しているものを探そうとしたものですが。そもそもの考え方が間違っているかもしれないので役に立たないかもしれないです。💦
64
- 審判を抽出して比較して一意になった後にもう一度審判を割り当てればいいと思っていましたが、審判が重複しているコードできなくて止まっています。抽出の時点で間違っているのでしょうか?
58
+ を抽出比較して一意になった後にもう一度もとのキーに割り当てればいいと思っていましたが、重複している検索、消去る方法わからなくて止まっています。
65
59
 
66
60
  ### 補足情報(FW/ツールのバージョンなど)
67
61
  使用しているのはpython(3.10.6)