gradioを使っている時のpythonとjavascriptのメモ
gradioでアプリを作っているとpythonとjavascriptがごっちゃになってすぐに忘れることをメモしておく。
gradio
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
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
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);
コメント
コメントを投稿