整数の場合、リスト内包は次の方法で実行できます。
julia> nums = [1,2,3,4]
4-element Array{Int64,1}:
1
2
3
4
julia> nums = [i+1 for i in nums]
4-element Array{Int64,1}:
2
3
4
5
しかし、文字列に文字を追加しようとすると、エラーがスローされます。
julia> s = split("the lazy fox jumps over the brown dog")
8-element Array{SubString{String},1}:
"the"
"lazy"
"fox"
"jumps"
"over"
"the"
"brown"
"dog"
julia> s2 = [word +'X' for word in s]
ERROR: syntax: invalid comprehension syntax
また、文字がプライベートUnicode文字(http://www.fileformat.info/info/unicode/char/e000/index.htm)の場合、別のエラーがスローされます。
julia> s2 = [word + u'\uE000' for word in s]
エラー:UndefVarError:uは./array.jl:307のcollect(:: Base.Generator {Array {SubString {String}、1}、## 3#4})で定義されていません
Juliaの文字列のリストにUnicode文字/文字列を追加するにはどうすればよいですか?
あなたの質問に素早く答えるための正しい方法は
[i*"X" for i in s]
しかし、忘れないでください'X'
され、"X"
二つの異なるものがあります。
julia> val = 'X'
'X'
julia> typeof(val)
Char
julia> val = "X"
"X"
julia> typeof(val)
String
これは、Pythonのバックグラウンドがあり、2つの間に違いがない場合に最初に発生する可能性があります。
また、Juliaでの文字列の連結は、では*
なくによって行われ+
ます。なぜそうなのかと聞くかもしれません!こちらの投稿をご覧ください
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加