gradioを使っている時のpythonとjavascriptのメモ
gradioでアプリを作っているとpythonとjavascriptがごっちゃになってすぐに忘れることをメモしておく。
gradio
gradio: 3.41.2 (A1111)
gradio: 4.40.0 (Forge)
python
代入する値にカンマがあるとタプルになる。エラーにならないので気づくのが遅れる。
>>> a = 123,
>>> print(type(a))
<class 'tuple'>
文字列
空文字列のチェック
>>> a = None
>>> print("True" if a else "False" )
False
>>> a = ""
>>> print("True" if a else "False" )
False
>>> a ="test"
>>> print("True" if a else "False" )
True
>>> a = None >>> print("True" if a is None else "False" ) True
>>> a = "" >>> print("True" if a is None else "False" ) False
文字列の一致
>>> "A" in "ABCDEF" True >>> "a" in "ABCDEF" False
>>> "C" in "ABCDEF" True >>> "DE" in "ABCDEF" True >>> "CB" in "ABCDEF" False
文字列前後の文字を削除
>>> " test Test ".strip() 'test Test'
任意の文字を削除できる。stripの引数は文字列として扱われるわけではない。一文字づつ評価され、それ以外の文字が現れるまで削除対象
>>> " AB test TestCD E F ".strip() 'AB test TestCD E F'
>>> " AB test TestCD E F ".strip(" BA")
'test TestCD E F'
>>> " AB test TestCD E F ".strip(" BAE") 'test TestCD E F' >>> " AB test TestCD E F ".strip(" BAF") 'test TestCD E' >>> " AB test TestCD E F ".strip(" BAFE") 'test TestCD'
list
>>> list1 = [ "item1", "item2", "item3" ]
>>> print(tuple(item for item in list1))
('item1', 'item2', 'item3')
条件で除外
>>> list1 = [ "item1", "item2", "item3" ]
>>> print(tuple(item for item in list1 if item != "item2"))
('item1', 'item3')
インデックス
>>> list1 = [ "item1", "item2", "item3" ] >>> print({item: i for i, item in enumerate(list1) if item != "item2"}) {'item1': 0, 'item3': 2}
>>> list1 = [ "item1", "item2", "item3" ]
>>> list2 = [ "value1", "value2", "value3" ]
>>> print({item: list2[i] for i, item in enumerate(list1) if item != "item2"})
{'item1': 'value1', 'item3': 'value3'}
zip 短い方のリストに合わせてループ
>>> list1 = [ "item1", "item2", "item3" ] >>> list2 = [ "value1", "value2", "value3" ] >>> print({itemA: itemB for itemA, itemB in zip(list1, list2) if itemA != "item2"}) {'item1': 'value1', 'item3': 'value3'}ぢ
dict
>>> d1 = { "key1":"value1", "key2":"value2", "key3": "value3"} >>> for k in d1: print(k) key1 key2 key3
>>> d1 = { "key1":"value1", "key2":"value2", "key3": "value3"} >>> for v in d1.values(): ... print(v) ... value1 value2 value3
KeyとValue両方
>>> d1 = { "key1":"value1", "key2":"value2", "key3": "value3"} >>> for k, v in d1.items(): ... print(k, v) ... key1 value1 key2 value2 key3 value3
除外
>>> d1 = { "key1":"value1", "key2":"value2", "key3": "value3"} >>> {k: v for k, v in d1.items() if k != "key2"} {'key1': 'value1', 'key3': 'value3'}
検索 文字列と違い部分一致ではない
>>> d1 = { "key1":"value1", "key2":"value2", "key3": "value3"} >>> "key" in d1 False >>> "key2" in d1 True >>> "value2" in d1.values() True >>> "value" in d1.values() Falseさ
三項演算子
優先順位
>>> 10 + 20 if True else 0 30 >>> 10 + 20 if False else 0 0 >>> 10 + (20 if False else 0) 10 >>> "ABC" + "DEF" if True else "GHI" 'ABCDEF' >>> "ABC" + "DEF" if False else "GHI" 'GHI' >>> "ABC" + ("DEF" if False else "GHI") 'ABCGHI
JSON
import json
エンコード
json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]) > '["foo", {"bar": ["baz", null, 1.0, 2]}]'
デコード
json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') > ['foo', {'bar': ['baz', None, 1.0, 2]}]
javascript
JSON string
JSON Stringのキーはダブルクォートでくくる。シングルクォートだとエラーになる。Pythonだとシングルクォートになる事がある。
let a = "{ 'key': 'なんちゃら'}"; let b = JSON.parse(a);
to JSON string mdn web docs
JSON.stringify({"key": "value"});
from JSON string mdn web docs
json = '{"key": "value"}'; JSON.parse(json);
文字列前後のスペースを削除
const greeting = ' Hello world! '; console.log(greeting.trim()); // Expected output: "Hello world!";
正規表現を使えばPythonのStripみたいにできる
const s1 = " Hello, World! "; const s2 = s1.replace(/^\s+|\s+$/g, ""); console.log(s2); > Hello, World!
コメント
コメントを投稿