[過去ログ] くだすれPython(超初心者用) その44【Ruby禁止】 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
274: デフォルトの名無しさん [sage] 2019/08/24(土) 12:54:31.62 ID:SB9VKIDg(1/10) AAS
>>263263(2): デフォルトの名無しさん [sage] 2019/08/24(土) 01:12:22.32 ID:feuvYzbT(1/2) AAS
l = ['{}({})'.format(p['addr'], scaleDic[str(p['scale'])]) for p in points]
print(', '.join(l))
どうもありがとうございます!
l = [f'{p["addr"]} (震度{scaleDic[str(p["scale"])]})' for p in points]
ll =', '.join(l)
print(ll)
f'に置き換えても動きました!
>>264>>265265(2): デフォルトの名無しさん [sage] 2019/08/24(土) 09:28:04.44 ID:fnGH5ITP(1) AAS
改行無しを多くつかうなら
def princ(x):print(x,end="")
で、end=""を少なくすると良いかも
どうもありがとうございます!
これらも確認してみます!
275: デフォルトの名無しさん [sage] 2019/08/24(土) 12:54:42.98 ID:SB9VKIDg(2/10) AAS
prefs = {'山梨': 2, '東京': 42, '北海道': 2, '千葉': 12, '神奈川': 31, '茨城': 1, '埼玉': 5, '静岡': 3, '栃木': 1, '沖縄': 1}
これを
valueの多い順に、
東京 (42), 神奈川 (31), 千葉 (12)...
と並べる方法もありますか?
prefsSorted = sorted(prefs.items(), key=lambda x: x[1], reverse=True)
この関数だと、
[('東京', 42), ('神奈川', 31), ('千葉', 12), ('埼玉', 5), ('静岡', 3), ('山梨', 2), ('北海道', 2), ('茨城', 1), ('栃木', 1), ('沖縄', 1)]
value順に並べられるけど、リストでも辞書でもなさそうな形式に変わってしまいました。
不要な文字をstripやreplace等で消そうと試しましたが、タプルだから無理とエラーが出ました。
教えていただいたように
pp = '{} {}'.format(pSk, pSv) for pSk, pSv in prefs.items
ppp = ', '.join(pp)
print(ppp)
これには応用出来ませんでした
276: デフォルトの名無しさん [sage] 2019/08/24(土) 12:56:04.04 ID:SB9VKIDg(3/10) AAS
>>266266(3): デフォルトの名無しさん [] 2019/08/24(土) 09:51:52.05 ID:BpytXyBE(1) AAS
これでお願いします
外部リンク:ideone.com
template = '{0} ({1})'
for p in points: p['scale'] = scaleDic[str(p['scale'])]
output = [template.format(p['addr'], p['scale']) for p in points]
print(*output, sep=', ')
>>267267(2): デフォルトの名無しさん [] 2019/08/24(土) 10:57:17.18 ID:6nD2xE5w(1/3) AAS
君のは無駄すぎる
print(', '.join(f"{p['addr']} ({scaleDic[p['scale']]})" for p in dd.get('points', [])))
>>271271(2): デフォルトの名無しさん [sage] 2019/08/24(土) 11:49:43.27 ID:c46ZB698(1/3) AAS
>>260 print(f'{a}({s})',end=', ')
一番最後にも , がつくのが少しうざいけど。
end= と言うのは print文の最後を改行の代わりに指定文字を出力して終わると言う意味だから、複数指定するのは間違い。
>>272
ありがとうございます
レス頂いた内容ひとつひとつきちんと試してみます
278: デフォルトの名無しさん [sage] 2019/08/24(土) 13:29:52.26 ID:SB9VKIDg(4/10) AAS
連投すみません
>>264
>>265
>>271
これ(>>260260(2): デフォルトの名無しさん [sage] 2019/08/23(金) 22:40:04.86 ID:bCjBZ45B(2/3) AAS
>>259
for p in points:
# print(p)
# sys.exit()
s = p['scale']
s = str(s)
s = scaleDic[s]
a = p['addr']
print(a, end=" ")
こうやるとaのvalueが横一列で表示されたので、試しに
print(a, end=" ", s end=" ")
こうやってみたらエラーでダメでした
) に対するendの使い方が分かりました
>>265
短いけれど内容難しいです
279: デフォルトの名無しさん [sage] 2019/08/24(土) 13:30:03.13 ID:SB9VKIDg(5/10) AAS
>>266
formatの対象を別変数に入れたり、printでsepを使う時にアスタリスクが使える事が参考になりました
>>267
これ (>>263) をさらにコンパクトにしたってことなんですね
>>272なるほど
scaleDicのkeyをstrじゃなくintにすればよかったんですね
280: デフォルトの名無しさん [sage] 2019/08/24(土) 13:43:44.40 ID:SB9VKIDg(6/10) AAS
>>277277(1): デフォルトの名無しさん [sage] 2019/08/24(土) 13:15:05.15 ID:cyI4/KcP(1) AAS
pp = ['{}({})'.format(i[0],i[1]) for i in prefsSorted]
print(', '.join(pp))
どうもありがとうございます!
formatでいけるんですね
じっくり調べてみます
281(2): デフォルトの名無しさん [sage] 2019/08/24(土) 14:14:17.12 ID:SB9VKIDg(7/10) AAS
書き直しました
外部リンク:ideone.com
pの中のscaleが空っぽの場合エラーになってしまうので、25〜26行目ようにifを使いました
一応これで動いてるっぽいんですが、やり方あってますか?
282: デフォルトの名無しさん [sage] 2019/08/24(土) 14:54:59.05 ID:SB9VKIDg(8/10) AAS
教えていただいたおかげで、Rubyでのサンプル(外部リンク:github.comの実行結果のようにPythonでも表示できるようにしてみました。
引数有り無しで何分前までの情報を表示するか選べるようにしました。
ただ、時間指定するか件数指定するかで迷っています。
サンプルは100行ほどで治まっているけれど、自分のは1.5倍もあるのできっと無駄だらけ(特にmain関数内のインデント)なんだろうと思いました。
外部リンク:ideone.com
画像リンク
285: デフォルトの名無しさん [sage] 2019/08/24(土) 21:07:21.79 ID:SB9VKIDg(9/10) AAS
>>283283(1): デフォルトの名無しさん [] 2019/08/24(土) 15:01:22.44 ID:u2q8uNB0(1) AAS
>>281
p['scale']
の代わりに
p.get('scale', 0)
としてscaleDict[0]のところに'不定'など入れるべき
>>284どうもありがとうございます
辞書を.getで使う事は知っていたけれど,で区切って代入したいものを書けば見つからない場合にそれが代入されるんですね
25〜26行目も不用になりました
勉強になりました
286: デフォルトの名無しさん [sage] 2019/08/24(土) 21:08:53.62 ID:SB9VKIDg(10/10) AAS
>見つからない場合に
じゃなくて代入するべきkeyが無い場合
ですね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.064s