次のデータが与えられます:
diccionario_datos_clientes = [
{"Name": "Marcos", "Age": 23, "Ranking": 14, "Contact":{ "Work": 99000001, "Personal": 7222003}},
{"Name": "Hugo", "Age": 26, "Ranking": 83, "Contact": { "Work": 99000002, "Personal": 97220042}},
{"Name": "Manuel", "Age": 13, "Ranking": 2, "Contact": { "Work": 99000003, "Personal": 47220003}},
{"Name": "Maria", "Age": 66, "Ranking": 7, "Contact": { "Work": 99000004, "Personal": 47220004}},
{"Name": "Itziar", "Age": 20, "Ranking": 23, "Contact": { "Work": 99000005, "Personal": 47220005}}
]
個人的な連絡先が有効かどうかを確認する必要があります。条件は次のとおりです。
番号が有効でない場合は、名前と勤務先の連絡先をリストに追加する必要があります。
最初の2つの条件を実行できましたが、3番目の条件で問題が発生しています。
dic_llamar=[]
for dic in diccionario_datos_clientes:
if len(str(dic['Contact']['Personal']))<8:
dic_llamar.append((dic['Name'],dic['Contact']['Work']))
elif int(str(dic['Contact']['Personal'])[0])!=4:
dic_llamar.append((dic['Name'],dic['Contact']['Work']))
不明な点がないかすぐに聞いてください。
これを独自の関数に抽出する方が良いと思います
def isValid(number):
"""take a number and said if is a valid contact number"""
s = str(number)
return len(s)>=8 and s[0]=="4" and s[4:7]=="000"
(なぜ他の人が同じことを何度も繰り返すのか分かりません)
独自の機能に組み込むことで、機能するかどうかをより簡単に確認でき(個別にテストできるため)、必要に応じてプロジェクトの他の部分でより簡単に使用できます。
そしてそれを次のように使用します
for dic in diccionario_datos_clientes:
if isValid(dic['Contact']['Personal']):
#do something
else:
#do something else
よりクリーンでより美しい
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加