回答編集履歴

9

 

2022/10/30 11:56

投稿

退会済みユーザー
test CHANGED
@@ -20,6 +20,6 @@
20
20
  ```py
21
21
  {'grape': 20, 'orange': 30, -1: 10}
22
22
  ```
23
- ※値が10の要素が2つ以上ある場合は、1つのみ置き換わる。(例となる x から見るに、値が10の要素は1つを想定していると思われる)
23
+ ※値が10の要素が2つ以上ある場合は、それらすべて削除され、-1:10 の要素1だけ追加される。(例となる x から見るに、値が10の要素は1つを想定していると思われる
24
24
  ※順番を揃えるというのは質問の要件に入っていない。そもそも dict は python の仕様上順不同です。orderd_dictはまた別の話です。
25
25
 

8

 

2022/10/30 11:55

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,7 @@
1
1
  > 'apple'というキーが存在するかどうかをif文を使って確認し、存在しない場合にキーに-1という値を入力したい
2
2
  コメントより、「x に apple というキーが存在しない場合、値が10である要素のキーを'-1' に変えたように見せかけたい」とのことだったので
3
3
  ```py
4
- x = {'apple': 10, 'grape': 20,'orange': 30}
4
+ x = {'app': 10, 'grape': 20,'orange': 30}
5
5
  keys = []
6
6
  if not 'apple' in x:
7
7
  for k, v in x.items():

7

 

2022/10/30 11:55

投稿

退会済みユーザー
test CHANGED
@@ -1,14 +1,18 @@
1
1
  > 'apple'というキーが存在するかどうかをif文を使って確認し、存在しない場合にキーに-1という値を入力したい
2
2
  コメントより、「x に apple というキーが存在しない場合、値が10である要素のキーを'-1' に変えたように見せかけたい」とのことだったので
3
3
  ```py
4
- x = {'app': 10, 'grape': 20,'orange': 30}
4
+ x = {'apple': 10, 'grape': 20,'orange': 30}
5
-
5
+ keys = []
6
6
  if not 'apple' in x:
7
7
  for k, v in x.items():
8
8
  if v == 10:
9
+ keys.append(k)
10
+
11
+ if keys:
12
+ for key in keys:
9
- x.pop(k, None)
13
+ x.pop(key,None)
10
- break
11
14
  x[-1] = 10
15
+
12
16
  print(x)
13
17
  ```
14
18
 

6

 

2022/10/30 11:48

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  > 'apple'というキーが存在するかどうかをif文を使って確認し、存在しない場合にキーに-1という値を入力したい
2
- コメントより、「x に apple というキーが存在しない場合、値が10である要素のキーを'-1' に変えたい」とのことだったので
2
+ コメントより、「x に apple というキーが存在しない場合、値が10である要素のキーを'-1' に変えたように見せかけたい」とのことだったので
3
3
  ```py
4
4
  x = {'app': 10, 'grape': 20,'orange': 30}
5
5
 

5

 

2022/10/30 11:48

投稿

退会済みユーザー
test CHANGED
@@ -1,16 +1,21 @@
1
1
  > 'apple'というキーが存在するかどうかをif文を使って確認し、存在しない場合にキーに-1という値を入力したい
2
-
3
- この日本語が、「'apple'という**キー**が存在するかどうかをif文を使って確認、存在しない場合に,**キー**が-1****が10の**要素****挿入**したい」という意味ならば
2
+ コメントより、「x に apple というキーが存在しない場合、値が10である要素のキー'-1' に変えたい」とのことだったので
4
3
  ```py
5
- x = {'app': 10, 'grape': 20,'orange': 30} # apple というキーが存在しない辞書。
4
+ x = {'app': 10, 'grape': 20,'orange': 30}
6
5
 
7
6
  if not 'apple' in x:
7
+ for k, v in x.items():
8
+ if v == 10:
9
+ x.pop(k, None)
10
+ break
8
11
  x[-1] = 10
9
12
  print(x)
10
13
  ```
11
14
 
12
15
  出力結果
13
16
  ```py
14
- {'app': 10, 'grape': 20, 'orange': 30, -1: 10}
17
+ {'grape': 20, 'orange': 30, -1: 10}
15
18
  ```
19
+ ※値が10の要素が2つ以上ある場合は、1つのみ置き換わる。(例となる x から見るに、値が10の要素は1つを想定していると思われる)
20
+ ※順番を揃えるというのは質問の要件に入っていない。そもそも dict は python の仕様上順不同です。orderd_dictはまた別の話です。
16
21
 

4

 

2022/10/30 11:26

投稿

退会済みユーザー
test CHANGED
@@ -14,4 +14,3 @@
14
14
  {'app': 10, 'grape': 20, 'orange': 30, -1: 10}
15
15
  ```
16
16
 
17
- (質問文の日本語では「値が10のもののキーを書き換える」という意図は読み取れない)

3

 

2022/10/30 11:26

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,6 @@
1
+ > 'apple'というキーが存在するかどうかをif文を使って確認し、存在しない場合にキーに-1という値を入力したい
2
+
1
- 「'apple'という**キー**が存在するかどうかをif文を使って確認し、存在しない場合に,**キー**が-1、**値**が10の**要素**を**挿入**したい」という意味ならば
3
+ この日本語が、「'apple'という**キー**が存在するかどうかをif文を使って確認し、存在しない場合に,**キー**が-1、**値**が10の**要素**を**挿入**したい」という意味ならば
2
4
  ```py
3
5
  x = {'app': 10, 'grape': 20,'orange': 30} # apple というキーが存在しない辞書。
4
6
 

2

 

2022/10/30 11:25

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- 「'apple'という**キー**が存在するかどうかをif文を使って確認し、存在しない場合に,**キー**が-1、**値**が10の**要素**を挿入したい」という意味ならば
1
+ 「'apple'という**キー**が存在するかどうかをif文を使って確認し、存在しない場合に,**キー**が-1、**値**が10の**要素**を**挿入**したい」という意味ならば
2
2
  ```py
3
3
  x = {'app': 10, 'grape': 20,'orange': 30} # apple というキーが存在しない辞書。
4
4
 

1

 

2022/10/30 11:25

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  「'apple'という**キー**が存在するかどうかをif文を使って確認し、存在しない場合に,**キー**が-1、**値**が10の**要素**を挿入したい」という意味ならば
2
2
  ```py
3
- x = {'app': 10, 'grape': 20,'orange': 30}
3
+ x = {'app': 10, 'grape': 20,'orange': 30} # apple というキーが存在しない辞書。
4
4
 
5
5
  if not 'apple' in x:
6
6
  x[-1] = 10