はじめに:この部分は基本的な文法の焦点であり、pyを使い始めるためのほんの小さなステップです。
[ プレビュー](https://blog.csdn.net/weixin_43798170/article/details/89894129)
目次
検索要素をリストに変更する主な操作は、追加、削除、変更、および検索です。
a=[1,2,3,4,5,6]print(a.index(5))出力4は、5がこのリストにあり、添え字の最初の出現が4であることを示します。
インデックス方式の場合、検索対象の要素がリストに複数回表示されると、最初に出現する添え字が表示され、検索時に検索要素がリストに含まれている必要があります。そうでない場合、エラーが報告されます。
value=a[1]print(value)print(a.count(2))#count方式とは、指定した要素の出現回数を求めることで、index方式との違いは、検出する要素が表示されない場合、ゼロが出力され、エラーが報告されないことです。
ちょっとしたトリック
e.g a=["月曜日に","火曜日に","水曜日に","木曜日","土曜日","金曜日","日曜日"]
# 明らかに、リスト内の土曜日と金曜日の位置が逆になっているので、今すぐ交換する必要があります
a[4],a[5]=a[5],a[4] #この操作は、C言語式とは異なり実行できます。
割り当ても次のようになります
a,b,c=1,2,3
s="月曜日に,火曜日に,水曜日に,木曜日,土曜日,金曜日,日曜日"
a=s.split(",")print(a)#形成されたaはリストであるため、文字列はリストに変換されます
# リストを文字列に変換することもできます
a1="*".join(a) #前面に接続できるフィラーは入力できますが、入力しない場合は「」を入力してください。結合方式を使用する場合は、リスト内のすべての要素が同じタイプである必要があることに注意してください。
print(a1)
要素を追加する
a=[1,2,3,4]
a.append(5)#指定した要素をリストの最後に追加しますが、最後に挿入できる要素は1つだけであることに注意してください
a.insert(3,2.45) #挿入方法には2つのパラメータがあります。1つ目は挿入する位置、2つ目は挿入されたコンテンツです。挿入が成功すると、元の位置と後続の要素が後方に移動します。
さらに、最初のパラメーターもリストの長さを超える可能性があります-1.この場合、システムはデフォルトで最後に挿入されます。-x,x>リストの長さはかなり頭に挿入されています
a.extend([5,6,7])#最後に新しいリストを追加する手段[5,6,7]
bなど=[5,6,7] a.extend(b)それで大丈夫です
たとえば、文字列sを追加することもできます。
s="hello"
a.extend(s)#このとき、文字列分割の各要素の出力結果が末尾に追加されます[1,2,3,4,'h','e','l','l','o']
はい、これが必要ない場合は、独立した要素としてhelloをリストに挿入します
a.extend([s])#出力[1,2,3,4,'hello']print(a)
タプルの紹介
タプルはリストのような順序付けられたコンテナでもあります
また、添え字を使用して要素にインデックスを付けます
傍受することもできます
しかし、それは不変のタイプです
a=(1,2,3)print(type(a))#<class'tuple'>
しかし、タプルの1つの要素だけをこのように表現する必要があります
b=1,
またはb=(1,)#注とb=(1)後者のシステムは、ブラケットを優先度の増加として扱います
タプルの一般的な操作は次のとおりです。
a1=a*3print(a1)print(len(a1))print(4in a1)print(max(a))print(min(a))print(a1.count(3))個別に出力:(1,2,3,1,2,3,1,2,3)9
False
313
しかし、[x]=xx,a.append(),a.remove()操作
さらに、タプルはこの割り当て操作をサポートします
t=(1,2,3)
a,b,c=t
print(f"t={t},a={a},b={b},c={c}")
# 出力:t=(1,2,3),a=1,b=2,c=3
過去の初めの2つの変数割り当て操作を思い出してください。
a,b=b,a
リストに似ています:
t[0],t[1]=t[1],t[0]print(t)
ただし、タプルはこの操作をサポートしていません
リストの入れ子
あらゆるタイプの要素をリストに保存できます
整数の10進数のbool値は、リストタイプにすることもできます。これは、いくつかの小さなボックスがある大きなボックスに相当します。
e.g
stu1=["シャオミン",95]
stu2=["シャオホン",86]
stu3=["シャオワン",68]
stu=[stu1,stu2,stu3]#[['シャオミン',95],['シャオホン',86],['シャオワン',68]]
または、次のように宣言します。
stu=[["シャオミン",95],["シャオホン",86],["シャオワン",68]]print(stu)print(stu[0][0])#シャオミン
print(f"{stu[0][0]}スコアは次のとおりです。{stu[0][1]}")#小明スコアは次のとおりです。95
リスト演習
1. 10個の要素のリストを作成します。値は次のとおりです。[30,31,30,31...]
l=[30,31]*52.添え字0の要素を削除します
l.pop(0)3.添え字1の要素の値を28に変更します
l[1]=284.下付き文字7の位置に要素31を挿入します
l.insert(7,31)5.リストの最後に2つの要素を追加します:30,31
l.extend([30,31])
最終結果は次のようになります[31,28,31,30,31,30,31,31,30,31,30,31]print(l)#[31,28,31,30,31,30,31,31,30,31,30,31]
ユーザーに1を入力するように促します~12の間の整数値は月を表し、コンソールにはユーザーが入力した月の日数が表示されます
たとえば、ユーザーが入力した数が7の場合、「7月31日」と表示されます。
month=input("1を入力してください~12の間の整数値は、月を表します。")
month=int(month)print(f"{month}月があります{l[month-1]}日")
この質問は、ifelifステートメントでも使用できます
レンジ方式
l=list(range(x))生成が0からxまで始まることを示します-1つの連続したリスト
range(end)0を生成-終わりの間の整数、終わりを含まない
range(start,end)開始を生成-終わりの間の整数、終わりを含まない
range(start,end,step)開始を生成-終わりの間の整数、終わりを含まない,そして、ステップ番号ごとに番号を生成します
l=list(range(1,101))
t=tuple(l)print(f"lのタイプは次のとおりです。{type(l)}\n{l}")print(f"tのタイプは次のとおりです。{type(t)}\n{t}")
lのタイプは次のとおりです。<class'list'>[1,2,3,4,5,6,7,8,9,....,100]
tのタイプは次のとおりです。<class'tuple'>(1,2,3,4,5,6,7,8,9,....)
l=list(range(1,100,2))#1を表します-100のすべての奇数
リストトラバーサル
トラバース:各要素を順番に取り出します
for...in..for item in l:print(item)タプル、ストリング、レンジ()トラバースに使用できます
l=list(range(101))for item in l:print(item)#順番に1を出力します-100
l=list(range(101))for item in"Python":print(item)#Pythonを順番に出力します
練習用
1. リストを作成するために5つの数字を入力するようにユーザーに促します
l=[]for i inrange(5):
num=input(f"入力してください{i+1}数:")
num=int(num)
l.append(num)print(f"入力された5つの数字は次のとおりです。{l}")
出力:
最初の番号を入力してください:1
2番目の番号を入力してください:2
3番目の番号を入力してください:3
4番目の番号を入力してください:4
5番目の番号を入力してください:5
入力された5つの数字は次のとおりです。[1,2,3,4,5]
リスト内の各要素の値*2for i inrange(len(l)):
l[i]*=2print(f"各要素の値*2つの新しいリスト:{l}")
新しいリストのすべての要素の合計を計算します
sum=0for i inrange(len(l)):
sum+=l[i]print(f"この新しいリストのすべての要素の合計は次のとおりです。{sum}")2.100内の7のすべての倍数と7を含む数を見つけて、リストに入れます
l=[]for i inrange(101):if i%7==0:
l.append(i)else:
temp=i
while(temp):
k=temp%10if(k==7):
l.append(i)break
temp/=10print(f"条件を満たす要素がリストに配置されます{l}")
条件を満たす要素がリストに配置されます[0,7,14,17,21,27,28,35,37,42,47,49,56,57,63,67,70,77,84,87,91,97,98]
whileループ
最も簡単な例:
i=0while i<10:print("balabala")
i+=1
l=[]
i=''while i!='q':
i=input("やることリストを入力してください(終了するにはqを差し引いてください)。")
l.append(i)
l.pop()print(l)
または、次のように宣言します。
while1:
i=input("やることリストを入力してください(終了するにはqを差し引いてください)。")if i=='q':break
l.append(i)print(l)
PythonとCシリーズの言語の重要な違い:
for i inrange(4):
システムは空のループを許容できず、エラーを報告します。これはC言語とは完全に異なりますが、このループを維持したいだけの場合(将来何かを追加するなど)、次のようにする必要があります。
pass #コードの整合性を保証できます
リストの理解
リスト内包表記は、新しいデータシーケンスをすばやく構築できます
[ リスト内の変数の式][リスト内の変数の式 if 筛选条件]
l1=[1,2,3,4,5]
l2=[i*2for i in l1]#出力[2,4,6,8,10] i*2は、l1とl2の関係です。つまり、l2の各要素は、l1の対応する各要素の2倍の大きさです。
l2=[i for i inrange(10)if not i%2]#出力[0,2,4,6,8]
次のように、リスト内のデータタイプを変換することもできます。
l2=[str(i)for i inrange(10)]#出力['0','1','2','3','4','5','6','7','8','9']print(l2)
文字列もシーケンス構造であるため、文字列をトラバースすることもできます
l=[i for i in'hello']#出力['h','e','l','l','o']
l=[i.upper()for i in'hello']#出力['H','E','L','L','O']
l=[i.upper()for i in'hello'if i!='h']#出力['E','L','L','O']print(l)
演繹的運動
1. 入手します['Food','Moon','Loop']の各要素の最初の文字、およびこれらの3つの最初の文字は新しい文字列を形成します
l=['Food','Moon','Loop']
l1=[i[0]for i in l]print(l1)
s=''.join(l1)print(s)
動作結果:
[' F','M','L']
FML
2. l1とl2の両方に現れる要素を見つけます
l1=[2,4,6,8,10,12]
l2=[3,6,9,12]
l=[i for i in l1 if i in l2]print(l) #出力:[6,12]3.意志[1,3,5,7,9]のすべての要素がコンソールに印刷されます
l3=[1,3,5,7,9]
解決策1:[print(i)for i in l3]
出力:
13579
解決策2:
for i in l3:print(i)
ループネスティング
最も簡単な例:
for i inrange(3):for j inrange(5):print(f"i={i},j={j}")
i=0,j=0 i=0,j=1 i=0,j=2 i=0,j=3 i=0,j=4 i=1,j=0 i=1,j=1 i=1,j=2 i=1,j=3 i=1,j=4
i=2,j=0 i=2,j=1 i=2,j=2 i=2,j=3 i=2,j=4
2次元リストを作成する
l=[]for i inrange(3):
item=[]
l.append(item)for j inrange(5):
item.append(j)print(l)#[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]]
# 二次元リスト要素検索:
for i in l:for j in i:print(j)#結果は順次出力されます
# ルーチンはレイヤーごとです
# 上記の両方は、リスト内包表記のそれぞれ1行で解決できます。
l1=[[j for j inrange(5)]for i inrange(3)]print(l1)#[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]][[print(j)for j in i]for i in l]#012340123401234
ループエクササイズ
1. 100個見つかりました-1000以内の水仙の最小数(水仙の数:各数の3の累乗の合計はそれ自体に等しい)
for i inrange(100,1001):
a=i%10
b=i//10%10
c=i//100%10if a**3+b**3+c**3==i:print(f"{i}100です-1000以内の水仙の数")
出力:
153 100です-1000以内の水仙の数
370 100です-1000以内の水仙の数
371 100です-1000以内の水仙の数
407 100です-1000以内の水仙の数
2. 100以内のすべての素数を見つけて、リストに保存します。
l=[]for i inrange(2,101):
is_prime=True
j=2while(j*j<=i):if i%j==0:
is_prime=False
j+=1if(is_prime):
l.append(i)print(l)#[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]3.ナインナイン乗算表を印刷する
for i inrange(1,10):for j inrange(1,10):print(f"{i}*{j}={i*j:2d}",end=' ')#フォーマットノート:すべてのスペース、1行の数字、および最終結果が整列していることを確認します,を使用しております:{i*j:2d}print("")1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*1=22*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=183*1=33*2=63*3=93*4=123*5=153*6=183*7=213*8=243*9=274*1=44*2=84*3=124*4=164*5=204*6=244*7=284*8=324*9=365*1=55*2=105*3=155*4=205*5=255*6=305*7=355*8=405*9=456*1=66*2=126*3=186*4=246*5=306*6=366*7=426*8=486*9=547*1=77*2=147*3=217*4=287*5=357*6=427*7=497*8=567*9=638*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=648*9=729*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
ディクショナリベースの可変コンテナタイプは、キーと値のペアでキーを格納します-値ディクショナリのキーは一意である必要があり、繰り返すことはできません
d={}print(d,type(d))#{}<class'dict'>
d={"北京":22,"上海":24}#通常のステートメント
d={"北京":22,"北京":24} #エラーステートメント
辞書のキーは不変でなければなりません# l=[0,1,2] a={l:22}エラー
印刷を確認してください(d["北京"])#出力22
かわった["北京"]=20
dを増やす["広州"]=23
dを削除する.pop("北京")変数を使用して受け取ることができます
value=d.pop("北京")
value=key("北京")
辞書内のキーに対応する値の検索は、いわゆる添え字に依存せず、キーによって検索されるため、辞書内にいわゆる優先順位はありません。
一度に複数の要素を辞書に追加したい場合は、updateメソッドを使用できます
d.update({"xx":"xx"}) #{'北京':22,'上海':24,'xx':'xx'}
updateメソッドで追加される要素がすでに存在する場合、対応する値(つまり、更新の新しい値)は偶発的に更新されます。
print(d)
v=d.pop("aa",-1)print(v)#2番目のパラメーターは、削除する最初のパラメーターが辞書にない場合、2番目のパラメーターをvに割り当て、vを出力することを意味します。=-1
同じ操作には、次の2つのバリエーションがあります
name=d.get("aa",-1)#2番目のパラメーターは、取得する最初のパラメーターが辞書にない場合、2番目のパラメーターを名前と出力名に割り当てることを意味します。=-1
メリットは何ですか?利点は次のとおりです。検索するキーが辞書にない場合、プログラムはクラッシュしません
さらに、次のものがあります。
name=d.setdefault("aa",-1)#2番目のパラメーターは、削除する最初のパラメーターが辞書にない場合、2番目のパラメーターを名前と出力名に割り当てることを意味します。=-1
そして、辞書に新しいキーと値のペアを追加します: "aa":-1#出力:{'北京':22,'上海':24,'aa':-1}print(d)
d.clear()print(d)#出力{}
次のいずれかの使用法で、辞書全体を大きな文字列として見ることができます。
print("aaa"+str(d))#出力:aaa{'北京':22,'上海':24}
キーが辞書にあるかどうかを判断できます。
print("aa"in d)#Falseを出力します。最初のパラメータ「aa」はキーにしかなり得ないことに注意してください
辞書の初期化は、別の行に書き込むことができます。
c={"aa":1,"bb":2}#出力:{'aa':1,'bb':2}print(c)
注:リストのキーは不変である必要があるため、リストを辞書のキーとして使用することはできませんが、リストを辞書の値として使用することはできます。
辞書トラバーサル
反復可能なオブジェクトの概念:一度に1つの要素のみを取得でき、をトラバースするために使用できます
s=dict(a=1,b=2,c=3)for i in s:print(f"key={i},value={s[i]}")
出力:
key=a,value=1
key=b,value=2
key=c,value=3
3つの方法があります:
for i in s.keys():print(f"key={i}")
出力:
key=a
key=b
key=c
for i in s.values():print(f"value={i}")
出力:
value=1
value=2
value=3
# 上記の2つの方法iは、sのキーとsの値を表します。
3番目のトラバーサル方法:
for k,v in s.items():print(f"key={k},value={v}")
出力:
key=a,value=1
key=b,value=2
key=c,value=3
l=list(s.keys())print(l)
t=tuple(s.values())print(t)
出力:
[' a','b','c'](1,2,3)
辞書とリストまたは辞書のネストの例:
s=dict(a=[1,2,3],b={"1":100,"2":200},c=3)print(s)#{'a':[1,2,3],'b':{'1':100,'2':200},'c':3}print(s["b"]["1"]) #出力100プリント(s["a"][2]) #出力3
注:最初の添え字がリストまたは辞書である場合に使用します""または''
2番目の添え字:
リストの添え字である場合は、一重引用符または二重引用符を使用しないでください
辞書には、
あなたは私が与えた2つの例を参照することができます
最後にすべてのソースコードを提示します
import math
# my_string="hello world!"
# print(int(len(my_string))) #出力文字列の長さ
# index=my_string.find("888")
# print(int(index)) #部分文字列が元の文字列と一致する場合は、元の文字列の最初の文字の添え字を返し、システムが見つからない場合はエラーを報告します
# c=my_string.count("l")
# print(c) #サブストリングが見つかった回数を記録するか、サブストリングが表示されない場合はゼロを記録します
# new_string=my_string.replace("ello","*") #2つのパラメータ、最初は変更される文字、2番目は変更される文字です
# print(new_string)
# print("h"in my_string) #inは、文字列が元の文字列に含まれているかどうかを示すことができ、戻り値はブール値trueまたはfalseです。
# print("h" not in my_string) #にもありません
# my_string="123,456,789"
# sub_my_string=my_string.split(",")
# print(sub_my_string) #分割は分割を意味し、括弧内のパラメーターの意味は分割フラグサブです_my_string=["123","456","789"],リストタイプ
# F-String(python 3.6+)
# name ='ファラオ'
# age=18
# result="こんにちは"+name+","+"あなたはもう今年"+str(age)+"年です!"
# result=f"こんにちは{name}、あなたはすでに持っています{age}年です!" #python3.バージョン6以降でのみ使用可能
# format()
# result="こんにちは{0}、あなたはすでに持っています{1}年です!".format(name,age)
# %(非推奨)
# result="こんにちは%s,あなたはもう今年%d歳!"%(name,age)
# [( 充填)整列][シンボル][幅][.精度][の種類]<左整列,>右整列,^ 居中整列
# pi=255
# パーセンテージシステムとして表される
# result=f"PI{pi:#x}無限の非繰り返し10進数です"
# 他のベースの値として表されます
# print(result)
# リレーショナル操作の結果はbool値です
'''
a=1
result=a==6print(result)'''
# print(12=="12")
# print('a'>'A')
# 012.....< A B C ......Z<a b c d ..... z
# print(True or False)
# print(not 2>1)'''
html="""
< html><head></head></html>"""
print(html)'''
'''
優先
1.**2.* /%//3.+-4.><>=<===!=5.and or not
6.='''
# result=1+2**2*3>=12-4/2 and 'Apple'>='Car'
# print(result)
# false
# ステートメントの練習の場合
'''
ユーザーが端末から数値を入力して受信し、偶数かどうかを判断する必要があります。
'''
'''
num=(input("整数を入力してください:"))
num=int(num)if num%2==0:print(f"入力した番号は{num}、偶数です")if num %3==0:print(f"{num}3で割り切れることもあります!")else:print(f"{num}3で割り切れません。")else:print(f"入力した番号は{num}、奇数です")print("End")'''
# elifステートメントの練習
# score=input("スコアを入力してください(0-100)")
# if score.isdigit(): #文字列が数字で構成されているかどうかを判断し、構成されている場合はtrueを返しますelsefalse
# score=int(score)
# スコアに基づいてグレードを決定する
# 100 S
# 90- 99 A
# 80- 89 B
# 70- 79 C
# 60- 69 D
# 0- 60 E
# if0<=score<=100:
# if score==100:
# print("S")
# elif score>=90:
# print("A")
# elif score>=80:
# print("B")
# elif score>=70:
# print("C")
# elif score>=60:
# print("D")
# else:
# print("E")
# else:
# print("あなたはミスを犯しました!")
# # 月を入力して、その年が飛躍年であるかどうかを判断するようにユーザーに促します
# year=input("有効な年を入力してください:")
# if year.isdigit():
# year=int(year)
# if(year%400==0or(year%4==0 and year%100)):
# print(f"{year}飛躍の年です!")
# else:
# print(f"{year}普通の年です!")
# # ユーザーに1を入力するように促します-99999の間の整数、この番号の各桁の値を順番に表示します(小さいものから大きいものへ)
# num=input("有効な数値を入力してください:")
# if num.isdigit():
# num=int(num)
# while(num):
# print(num%10)
# num//=10
# ロックペーパーシザーズ推測ゲームを設計する
# 1- 結石
# 2- はさみ
# 3- 布
# import random #ランダムな数字を生成する
# system_number=random.randint(1,3)
# user_number=input("有効な値を入れてください:\n1.はさみ\n2.結石\n3.布")
# user_number=int(user_number)
# if(user_number==system_number):
# print(f"system_数は{system_number},your 数は{user_number},ドロー")
# else:
# if((user_number>system_number and not(system_number==1 and user_number==3))or(system_number==3 and user_number==1)):
# print(f"system_数は{system_number},your 数は{user_number},you win!")
# else:
# print(f"system_数は{system_number},your 数は{user_number},you lose!")
# a=[] #空のリスト、リストはpythonの最も基本的なデータ構造です
# リストインデックスはゼロから始まります。インデックスを使用して要素myを取得します。_list[x]
# 負の添え字もサポートします_list[-1]
# 使える[start:end:step]リストを傍受する_list[1:4:1]ステップサイズ1で、リストを1から4までインターセプトすることを示します
# b=[1,3.14,"h",True] #ブール値Trueの最初の文字は大文字にする必要があります。Falseについても同じです。
# print(type(b)) #<class"list">
# 文字列とリストの主な違いを理解する:文字列は不変であり、変更操作をサポートしていませんが、リストは
# eg.
# c="hello"
# c[0]="k"#エラー、文字列は不変です
# b[0]="hi"
# print(b) #コンソール出力['hi',3.14,'h', True]
# リストを逆順で出力する方法は、文字列を逆順で出力する方法と同じです。
# print(b[::-1])
# a=[1,2,3,4]
# if5in a:
# print(f"{a}この要素が含まれています")
# else:
# print(f"{a}そのような要素はありません")
# リストの最後の要素の正のインデックス:リストの長さ-1
# count=len(a)
# print(count)
# b=["a","b","c"] #リストマージ操作
# new_list=a+b
# print(new_list)
# c=a*3
# print(c) #出力[1,2,3,4,1,2,3,4,1,2,3,4]
# リスト逆操作:2つの方法
# 1. 印刷できます(a[::-1])
# 2. a.reverse
# e.g
# a.reverse() #逆にしない(a)
# print(a) #注意してください.リバースは、受け取るために新しい変数を必要としません!
# max_value=max(a),min_value=min(a)#リスト内で最大の要素を取得する:もちろん、リスト要素は整数、浮動小数点などの同じタイプの値であることが前提です。もちろん、すべての文字列を比較することもできます。
# リストを並べ替える
# a.sort()
# print(a) #リストを並べ替える:もちろん、リスト要素は整数、浮動小数点タイプなどの同じタイプの値であり、もちろんすべての文字列も比較できることが前提です。
# 変数名など.()メソッドの呼び出しに慣れています
# など.sort(),a.reverse()
# 他のタイプはlenです(a),min(a),max(a)それを関数と呼びます
# 検索要素をリストに変更する主な操作は、追加、削除、変更、および検索です。
# a=[1,2,3,4,5,6]
# print(a.index(5))出力4は、5がこのリストにあり、添え字の最初の出現が4であることを示します。
# インデックス方式の場合、検索対象の要素がリストに複数回表示されると、最初に出現する添え字が表示され、検索時に検索要素がリストに含まれている必要があります。そうでない場合、エラーが報告されます。
# value=a[1]
# print(value)
# print(a.count(2))#count方式とは、指定した要素の出現回数を求めることで、index方式との違いは、検出する要素が表示されない場合、ゼロが出力され、エラーが報告されないことです。
# ちょっとしたトリック
# e.g a=["月曜日に","火曜日に","水曜日に","木曜日","土曜日","金曜日","日曜日"]
# # 明らかに、リスト内の土曜日と金曜日の位置が逆になっているので、今すぐ交換する必要があります
# a[4],a[5]=a[5],a[4] #この操作は、C言語式とは異なり実行できます。
# 割り当ても次のようになります
# a,b,c=1,2,3
# s="月曜日に,火曜日に,水曜日に,木曜日,土曜日,金曜日,日曜日"
# a=s.split(",")
# print(a)#形成されたaはリストであるため、文字列はリストに変換されます
# # リストを文字列に変換することもできます
# a1="*".join(a) #前面に接続できるフィラーは入力できますが、入力しない場合は「」を入力してください。結合方式を使用する場合は、リスト内のすべての要素が同じタイプである必要があることに注意してください。
# print(a1)
# 要素を追加する
# a=[1,2,3,4]
# a.append(5)#指定した要素をリストの最後に追加しますが、最後に挿入できる要素は1つだけであることに注意してください
# a.insert(3,2.45) #挿入方法には2つのパラメータがあります。1つ目は挿入する位置、2つ目は挿入されたコンテンツです。挿入が成功すると、元の位置と後続の要素が後方に移動します。
# さらに、最初のパラメーターもリストの長さを超える可能性があります-1.この場合、システムはデフォルトで最後に挿入されます。-x,x>リストの長さはかなり頭に挿入されています
# a.extend([5,6,7])#最後に新しいリストを追加する手段[5,6,7]
# bなど=[5,6,7] a.extend(b)それで大丈夫です
# たとえば、文字列sを追加することもできます。
# s="hello"
# a.extend(s)#このとき、文字列分割の各要素の出力結果が末尾に追加されます[1,2,3,4,'h','e','l','l','o']
# はい、これが必要ない場合は、独立した要素としてhelloをリストに挿入します
# a.extend([s])#出力[1,2,3,4,'hello']
# print(a)
# 要素を削除
# a=[1,3,5,7,9]
# a.pop() #出力[1,3,5,7]、最後の要素をポップアップします。この操作では、変数を使用して受信することもできます。
# value=a.pop() #出力9
# value=a.pop(2) #ポップアップリストで指定された要素を添え字2で表します
# 変数を使用して、特定の要素を受信してポップアップすることもできます。
# ただし、いくつかの点に注意してください。1.一意のパラメータ添え字が必要であり、指定する添え字は境界を超えることはできません(たとえば、負の添え字を使用できます。.pop(-1)ポップアップする最後の要素を表します)
# print(value)
# 要素の削除もdel操作を使用できます
# del a[-2]#最後から2番目の要素を削除することを意味しますが、del操作は変数を使用した受信をサポートしていません
# print(a)#出力[1,3,5,9]
# ディクショナリベースの可変コンテナタイプは、キーと値のペアでキーを格納します-値ディクショナリのキーは一意である必要があり、繰り返すことはできません
# d={}
# print(d,type(d))#{}<class'dict'>
# d={"北京":22,"上海":24}#通常のステートメント
# d={"北京":22,"北京":24} #エラーステートメント
# 辞書のキーは不変でなければなりません# l=[0,1,2] a={l:22}エラー
# 印刷を確認してください(d["北京"])#出力22
# かわった["北京"]=20
# dを増やす["広州"]=23
# dを削除する.pop("北京")変数を使用して受け取ることができます
# value=d.pop("北京")
# value=key("北京")
# 辞書内のキーに対応する値の検索は、いわゆる添え字に依存せず、キーによって検索されるため、辞書内にいわゆる優先順位はありません。
# 一度に複数の要素を辞書に追加したい場合は、updateメソッドを使用できます
# d.update({"xx":"xx"}) #{'北京':22,'上海':24,'xx':'xx'}
# updateメソッドで追加される要素がすでに存在する場合、対応する値(つまり、更新の新しい値)は偶発的に更新されます。
# print(d)
# v=d.pop("aa",-1)
# print(v)#2番目のパラメーターは、削除する最初のパラメーターが辞書にない場合、2番目のパラメーターをvに割り当て、vを出力することを意味します。=-1
# 同じ操作には、次の2つのバリエーションがあります
# name=d.get("aa",-1)#2番目のパラメーターは、取得する最初のパラメーターが辞書にない場合、2番目のパラメーターを名前と出力名に割り当てることを意味します。=-1
# メリットは何ですか?利点は次のとおりです。検索するキーが辞書にない場合、プログラムはクラッシュしません
# さらに、次のものがあります。
# name=d.setdefault("aa",-1)#2番目のパラメーターは、削除する最初のパラメーターが辞書にない場合、2番目のパラメーターを名前と出力名に割り当てることを意味します。=-1
# そして、辞書に新しいキーと値のペアを追加します: "aa":-1#出力:{'北京':22,'上海':24,'aa':-1}
# print(d)
# d.clear()
# print(d)#出力{}
# 次のいずれかの使用法で、辞書全体を大きな文字列として見ることができます。
# print("aaa"+str(d))#出力:aaa{'北京':22,'上海':24}
# キーが辞書にあるかどうかを判断できます。
# print("aa"in d)#Falseを出力します。最初のパラメータ「aa」はキーにしかなり得ないことに注意してください
# 辞書の初期化は、別の行に書き込むことができます。
# c={
# " aa":1,
# " bb":2
# }# 出力:{'aa':1,'bb':2}
# print(c)
# 注:リストのキーは不変である必要があるため、リストを辞書のキーとして使用することはできませんが、リストを辞書の値として使用することはできます。
# 辞書トラバーサル
# 反復可能なオブジェクトの概念:一度に1つの要素のみを取得でき、をトラバースするために使用できます
# s=dict(a=1,b=2,c=3)
# for i in s:
# print(f"key={i},value={s[i]}")
# 出力:
# key=a,value=1
# key=b,value=2
# key=c,value=3
# 3つの方法があります:
# for i in s.keys():
# print(f"key={i}")
# 出力:
# key=a
# key=b
# key=c
# for i in s.values():
# print(f"value={i}")
# 出力:
# value=1
# value=2
# value=3
# # 上記の2つの方法iは、sのキーとsの値を表します。
# 3番目のトラバーサル方法:
# for k,v in s.items():
# print(f"key={k},value={v}")
# 出力:
# key=a,value=1
# key=b,value=2
# key=c,value=3
# l=list(s.keys())
# print(l)
# t=tuple(s.values())
# print(t)
# 出力:
# [' a','b','c']
# (1,2,3)
# 辞書とリストまたは辞書のネストの例:
# s=dict(a=[1,2,3],b={"1":100,"2":200},c=3)
# print(s)#{'a':[1,2,3],'b':{'1':100,'2':200},'c':3}
# print(s["b"]["1"]) #出力100
# print(s["a"][2]) #出力3
# 注:最初の添え字がリストまたは辞書である場合に使用します""または''
# 2番目の添え字:
# リストの添え字である場合は、一重引用符または二重引用符を使用しないでください
# 辞書には、
# 上記の2つの例を参照してください
# リストの理解
# リスト内包表記は、新しいデータシーケンスをすばやく構築できます
# [ リスト内の変数の式]
# [ フィルタ条件の場合、リスト内の変数の式]
# l1=[1,2,3,4,5]
# l2=[i*2for i in l1]#出力[2,4,6,8,10] i*2は、l1とl2の関係です。つまり、l2の各要素は、l1の対応する各要素の2倍の大きさです。
# l2=[i for i inrange(10)if not i%2]#出力[0,2,4,6,8]
# 次のように、リスト内のデータタイプを変換することもできます。
# l2=[str(i)for i inrange(10)]#出力['0','1','2','3','4','5','6','7','8','9']
# print(l2)
# 文字列もシーケンス構造であるため、文字列をトラバースすることもできます
# l=[i for i in'hello']#出力['h','e','l','l','o']
# l=[i.upper()for i in'hello']#出力['H','E','L','L','O']
# l=[i.upper()for i in'hello'if i!='h']#出力['E','L','L','O']
# print(l)
# 演繹的運動
# 1. 入手します['Food','Moon','Loop']の各要素の最初の文字、およびこれらの3つの最初の文字は新しい文字列を形成します
# l=['Food','Moon','Loop']
# l1=[i[0]for i in l]
# print(l1)
# s=''.join(l1)
# print(s)
# 動作結果:
# [' F','M','L']
# FML
# 2. l1とl2の両方に現れる要素を見つけます
# l1=[2,4,6,8,10,12]
# l2=[3,6,9,12]
# l=[i for i in l1 if i in l2]
# print(l) #出力:[6,12]
# 3. 意志[1,3,5,7,9]のすべての要素がコンソールに印刷されます
# l3=[1,3,5,7,9]
# 解決策1:[print(i)for i in l3]
# 出力:
# 1
# 3
# 5
# 7
# 9
# 解決策2:
# for i in l3:
# print(i)
# タプルの紹介
# タプルはリストのような順序付けられたコンテナでもあります
# また、添え字を使用して要素にインデックスを付けます
# 傍受することもできます
# しかし、それは不変のタイプです
# a=(1,2,3)
# print(type(a))#<class'tuple'>
# しかし、タプルの1つの要素だけをこのように表現する必要があります
# b=1,
# またはb=(1,)#注とb=(1)後者のシステムは、ブラケットを優先度の増加として扱います
# タプルの一般的な操作は次のとおりです。
# a1=a*3
# print(a1)
# print(len(a1))
# print(4in a1)
# print(max(a))
# print(min(a))
# print(a1.count(3))
# 個別に出力:
# (1,2,3,1,2,3,1,2,3)
# 9
# False
# 3
# 1
# 3
# しかし、[x]=xx,a.append(),a.remove()操作
# さらに、タプルはこの割り当て操作をサポートします
# t=(1,2,3)
# a,b,c=t
# print(f"t={t},a={a},b={b},c={c}")
# # 出力:t=(1,2,3),a=1,b=2,c=3
# 過去の初めの2つの変数割り当て操作を思い出してください。
# a,b=b,a
# リストに似ています:
# t[0],t[1]=t[1],t[0]
# print(t)
# ただし、タプルはこの操作をサポートしていません
# リストの入れ子
# あらゆるタイプの要素をリストに保存できます
# 整数の10進数のbool値は、リストタイプにすることもできます。これは、いくつかの小さなボックスがある大きなボックスに相当します。
# e.g
# stu1=["シャオミン",95]
# stu2=["シャオホン",86]
# stu3=["シャオワン",68]
# stu=[stu1,stu2,stu3]#[['シャオミン',95],['シャオホン',86],['シャオワン',68]]
# または、次のように宣言します。
# stu=[
# [" シャオミン",95],
# [" シャオホン",86],
# [" シャオワン",68]
# ]
# print(stu)
# print(stu[0][0])#シャオミン
# print(f"{stu[0][0]}スコアは次のとおりです。{stu[0][1]}")#小明スコアは次のとおりです。95
# リスト演習
# 1. 10個の要素のリストを作成します。値は次のとおりです。[30,31,30,31...]
# l=[30,31]*5
# 2. 添え字0の要素を削除します
# l.pop(0)
# 3. 添え字1の要素の値を28に変更します
# l[1]=28
# 4. 下付き文字7の位置に要素31を挿入します
# l.insert(7,31)
# 5. リストの最後に2つの要素を追加します:30,31
# l.extend([30,31])
# 最終結果は次のようになります[31,28,31,30,31,30,31,31,30,31,30,31]
# print(l)#[31,28,31,30,31,30,31,31,30,31,30,31]
# ユーザーに1を入力するように促します~12の間の整数値は月を表し、コンソールにはユーザーが入力した月の日数が表示されます
# たとえば、ユーザーが入力した数が7の場合、「7月31日」と表示されます。
# month=input("1を入力してください~12の間の整数値は、月を表します。")
# month=int(month)
# print(f"{month}月があります{l[month-1]}日")
# この質問は、ifelifステートメントでも使用できます
# レンジ方式
# l=list(range(x))生成が0からxまで始まることを示します-1つの連続したリスト
# range(end)0を生成-終わりの間の整数、終わりを含まない
# range(start,end)開始を生成-終わりの間の整数、終わりを含まない
# range(start,end,step)開始を生成-終わりの間の整数、終わりを含まない,そして、ステップ番号ごとに番号を生成します
# l=list(range(1,101))
# t=tuple(l)
# print(f"lのタイプは次のとおりです。{type(l)}\n{l}")
# print(f"tのタイプは次のとおりです。{type(t)}\n{t}")
# lのタイプは次のとおりです。<class'list'>
# [1,2,3,4,5,6,7,8,9,....,100]
# tのタイプは次のとおりです。<class'tuple'>
# (1,2,3,4,5,6,7,8,9,....)
# l=list(range(1,100,2))#1を表します-100のすべての奇数
# リストトラバーサル
# トラバース:各要素を順番に取り出します
# for...in..
# for item in l:
# print(item)
# タプル、ストリング、レンジ()トラバースに使用できます
# l=list(range(101))#注:範囲内に変数タイプリストを含めることはできません
# for item in l:
# print(item)#順番に1を出力します-100
# l=list(range(101))
# for item in"Python":
# print(item)#Pythonを順番に出力します
# forループ
# コンテナタイプを介したforinループ
# 最も簡単な例:
# for item inrange(100):
# print("hello,world!")
# sum=0
# for item inrange(1,101):
# sum+=item
# print(sum)#おなじみの5050
# for item inrange(1,101):
# if item %2==0:
# sum+=item
# print(sum)#おなじみの2025
# 練習用
# 1. リストを作成するために5つの数字を入力するようにユーザーに促します
# l=[]
# for i inrange(5):
# num=input(f"入力してください{i+1}数:")
# num=int(num)
# l.append(num)
# print(f"入力された5つの数字は次のとおりです。{l}")
# 出力:
# 最初の番号を入力してください:1
# 2番目の番号を入力してください:2
# 3番目の番号を入力してください:3
# 4番目の番号を入力してください:4
# 5番目の番号を入力してください:5
# 入力された5つの数字は次のとおりです。[1,2,3,4,5]
# リスト内の各要素の値*2
# for i inrange(len(l)):
# l[i]*=2
# print(f"各要素の値*2つの新しいリスト:{l}")
# 新しいリストのすべての要素の合計を計算します
# sum=0
# for i inrange(len(l)):
# sum+=l[i]
# print(f"この新しいリストのすべての要素の合計は次のとおりです。{sum}")
# 2. 100内の7のすべての倍数と7を含む数を見つけて、リストに入れます
# l=[]
# for i inrange(101):
# if i%7==0:
# l.append(i)
# else:
# temp=i
# while(temp):
# k=temp%10
# if(k==7):
# l.append(i)
# break
# temp/=10
# print(f"条件を満たす要素がリストに配置されます{l}")
# 条件を満たす要素がリストに配置されます[0,7,14,17,21,27,28,35,37,42,47,49,56,57,63,67,70,77,84,87,91,97,98]
# whileループ
# 最も簡単な例:
# i=0
# while i<10:
# print("balabala")
# i+=1
# l=[]
# i=''
# while i!='q':
# i=input("やることリストを入力してください(終了するにはqを差し引いてください)。")
# l.append(i)
# l.pop()
# print(l)
# または、次のように宣言します。
# while1:
# i=input("やることリストを入力してください(終了するにはqを差し引いてください)。")
# if i=='q':
# break
# l.append(i)
# print(l)
# PythonとCシリーズの言語の重要な違い:
# for i inrange(4):
# システムは空のループを許容できず、エラーを報告します。これはC言語とは完全に異なりますが、このループを維持したいだけの場合(将来何かを追加するなど)、次のようにする必要があります。
# pass #コードの整合性を保証できます
# ループネスティング
# 最も簡単な例:
# for i inrange(3):
# for j inrange(5):
# print(f"i={i},j={j}")
# i=0,j=0 i=0,j=1 i=0,j=2 i=0,j=3 i=0,j=4 i=1,j=0 i=1,j=1 i=1,j=2 i=1,j=3 i=1,j=4
# i=2,j=0 i=2,j=1 i=2,j=2 i=2,j=3 i=2,j=4
# 2次元リストを作成する
# l=[]
# for i inrange(3):
# item=[]
# l.append(item)
# for j inrange(5):
# item.append(j)
# print(l)#[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]]
# # 二次元リスト要素検索:
# for i in l:
# for j in i:
# print(j)#結果は順次出力されます
# # ルーチンはレイヤーごとです
# # 上記の両方は、リスト内包表記のそれぞれ1行で解決できます。
# l1=[[j for j inrange(5)]for i inrange(3)]
# print(l1)#[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]]
# [[ print(j)for j in i]for i in l]#012340123401234
# ループエクササイズ
# 1. 100個見つかりました-1000以内の水仙の最小数(水仙の数:各数の3の累乗の合計はそれ自体に等しい)
# for i inrange(100,1001):
# a=i%10
# b=i//10%10
# c=i//100%10
# if a**3+b**3+c**3==i:
# print(f"{i}100です-1000以内の水仙の数")
# 出力:
# 153 100です-1000以内の水仙の数
# 370 100です-1000以内の水仙の数
# 371 100です-1000以内の水仙の数
# 407 100です-1000以内の水仙の数
# 2. 100以内のすべての素数を見つけて、リストに保存します。
# l=[]
# for i inrange(2,101):
# is_prime=True
# j=2
# while(j*j<=i):
# if i%j==0:
# is_prime=False
# j+=1
# if(is_prime):
# l.append(i)
# print(l)#[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]
# 3. ナインナイン乗算表を印刷する
# for i inrange(1,10):
# for j inrange(1,10):
# print(f"{i}*{j}={i*j:2d}",end=' ')#フォーマットノート:すべてのスペース、1行の数字、および最終結果が整列していることを確認します,を使用しております:{i*j:2d}
# print("")
# 1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=9
# 2*1=22*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=18
# 3*1=33*2=63*3=93*4=123*5=153*6=183*7=213*8=243*9=27
# 4*1=44*2=84*3=124*4=164*5=204*6=244*7=284*8=324*9=36
# 5*1=55*2=105*3=155*4=205*5=255*6=305*7=355*8=405*9=45
# 6*1=66*2=126*3=186*4=246*5=306*6=366*7=426*8=486*9=54
# 7*1=77*2=147*3=217*4=287*5=357*6=427*7=497*8=567*9=63
# 8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=648*9=72
# 9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
Acknowledgement:
NetEase Cloud Classroom:
** ボボ教室41時間のゼロ基本学習Python **
Recommended Posts