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);



コメント

最近のコメント

Threaded Recent Comments will be here.