【Python】C#から機能を逆引きメモ

普段C#を知っていて、Pythonをたまに使う人向けのメモ

文字列の@(逐語的文字列)はr

特殊文字を無視したい場合エスケープ文字を使いますが、パス名など複数出る場合は面倒なのでこの文字列は文字として扱えと指定することができます。
それをC#では逐語的文字列といいます。

C#

1string myStr = @"C:\foo\bar.png";

Python

1myStr = r"C:\foo\bar.png"

但し、Pythonでは逐語的文字列内でも\はエスケープになるので\を末尾につけることはできません。

1# ダブルクォーテーションをエスケープしてしまうのでエラーになる
2print(r"C:\foo\bar\")
3#これならOK
4print(r"C:\foo\bar" + "\\")
5# C:\foo\bar\

Containsは 値 in リスト

リストに存在するかどうかを調べたい場合は

C#

1List<string> myList = new List<string>()
2{
3    "A","B","C","D","E"
4};
5System.Diagnostics.Debug.WriteLine(myList.Contains("B"));
6// true

Python

1mylist = ["A", "B", "C", "D", "E"]
2print("B" in mylist)
3# true

これは文字列から文字が存在するかどうかを調べたい場合も同じです

C#

1string myStr = "HelloWorld";
2System.Diagnostics.Debug.WriteLine(myStr.Contains("Hello"));
3// true

Python

1myStr = "HelloWorld"
2print("Hello" in myStr)
3# true