10年以上C#で開発してきて、Pythonを使うことになったので印象に残っているC#のこれはPythonだとこう書くっていうのを備忘録として残しておくので、参考になれば幸いです。
基本的な型
List
//初期化 var list = new List<string>(); // 要素の追加 list.Add("abc"); list.Add("あいうえお"); // 値が含まれているか contains = list.Contains("efg") Console.WriteLine(contains) -> false // 値を削除 list.Remove("abc"); // 件数を取得 var count = list.Count; // インデックスを指定して取得 var item = list[0] // 先頭、末尾を取得(System.Linq) var first = list.First(); var last = list.Last();
# 初期化 list: list = [] # 要素の追加 list.append("abc"); list.append("あいうえお"); # 値が含まれているか contains ="efg" in list print(contains) -> false # 値を削除 list.remove("abc") # 件数を取得 count = len(list) # インデックスを指定して取得 item = list[0] # 先頭、末尾を取得 first = list[0] last = list[-1]
Dictionary
// 初期化 var dict= new Dictionary<int, string>(); // 初期化2 var dist2= new Dictionary<int, string>() { {1, "abc" }, {2, "あいうえお" }, }; // 追加 dict.Add(1, "abc"); dict.Add(2, "あいうえお"); //値取得 var value = dict[1]; //キー判定 var containsKey = dict.ContainsKey(1); // 削除 dict.Remove(1); // キーの一覧取得 foreach (var key in dict.Keys) { } // 値の一覧取得 foreach (var value in dict.Values) { }
# 初期化 dict = {} # 初期化2 dist2 = { 1: "abc", 2: "あいうえお", } ## 同じキーを追加しても例外にならずに後勝ちになる(C#はキー重複で例外) dict = { 1: "abc", 1: "あいうえお", } # 追加 dict[1] = "abc" dict[2] = "あいうえお" # 値取得 value = dict[1] # キー判定 containsKey = 1 in dict # 削除 del dict[1] ## もしくは dict.pop(1) # ただしキーが存在しないとエラーになる # キーの一覧取得 for key in dict.keys: pass # 値の一覧取得 for value in dict.values: pass
制御文
for
for (var index = 0; index < 5; index++) { }
for index in range(0, 10): pass
foreach
Pythonにforeachはなく、for文を使う
var list = new List<string>(); foreach(var item in list) { }
list: list = [] for item in list: pass