ベストアンサー pythonで命令にない文字列の置換が起こります。 2022/03/19 18:50 画像のpythonのコードでは文字列trueを参照しながら誤ったスペルの文字列 f の要素 f[i] をtrue[i]で置き換えようとしているのですが、なぜかtrueの要素が変換されてしまいます。 どうしたら直りますか? 画像を拡大する みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー _kappe_ ベストアンサー率68% (1606/2337) 2022/03/19 20:02 回答No.3 この例だと、iの値が10のときにf.replace("a", "t")が実行されます。 つまり、"It raised abc reason."の中の"a"という部分を全て"t"で置き換えているので、"abc"の部分の"a"以外にも"raised"や"reason"の中の"a"も置き換えてしまっているわけです。 この場合、置き換えたい部分だけを置き換えるにはreplaceは不向きです。他のやり方を考えてください。 質問者 お礼 2022/03/20 18:23 親切な回答をありがとうございました。よくわかりました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) AsarKingChang ベストアンサー率46% (3467/7474) 2022/03/19 19:54 回答No.2 pythonは使ったことがないので、的外れだったらすいません。 他の言語でも共通の認識として 予約語を使うな!というものがあり、 "true" ← この文字を使ってはいけないのです。 (ちなみ反意語は、false) これ、booleanオブジェクトの一部なので、 好き勝手に使う変数名としては、正しく動いたとしても、 使うべきじゃないので、それも原因の一つとは 考えられます。 #ただ、これが原因だとも確信がないので、的外れの可能性は かなりあるので、さらっと聞き流してもらってもOKです。 質問者 お礼 2022/03/20 18:21 予約語を使わなければ間違いが発生しにくいというのは、もっともなご指摘だと思いました。回答ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 wormhole ベストアンサー率28% (1626/5665) 2022/03/19 19:52 回答No.1 >なぜかtrueの要素が変換されてしまいます。 何をもって「trueの要素が変換されている」と判断されたのでしょうか? 少なくとも添付画像のコードと結果では、そういう判断はできないのですけど。 とりあえずはreplace()の仕様の理解が一歩足りないというのはわかりますけど。 質問者 お礼 2022/03/20 18:22 回答ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Python 関連するQ&A エクセルの文字列置換マクロに関するご相談 下方のマクロを実行することにより、 文字列リストの内容に基づいて、 別シート(作業)内の文字列を変換することができます。 文字列からコード値へ変換することを目的にマクロを埋め込んだのですが、 別シート(作業)の文字列をコード値に変換した際、3桁くぎりのコード値が並んだ場合に、 自動で数値として認識されてしまいます。 ※別シート(作業)のセルを文字列し設定しても発生します。 プログラムで回避手段があるようでしたらご教示いただければ幸いです。 例)文字列リストシート A B さる 10 ぞう 15 ごりら 101 きりん 102 わに 103 かば 104 マクロ実行前の作業シート A さる,ぞう ごりら ごりら,きりん,わに さる,ごりら マクロ実行後の作業シート A 10,15 101 101102103 10101 上記マクロ実行後のシートの3~4行目のように、 カンマが取れることを防ぎ、文字列として代入したい所存です。 <マクロ> Sub 文字列リストに基づき連続して置換する() i = 2 Do x1 = Sheets("文字列リスト").Cells(i, 1) x2 = Sheets("文字列リスト").Cells(i, 2) Sheets("作業").Cells.Replace _ What:=x1, Replacement:=x2, _ SearchOrder:=xlByColumns, MatchCase:=True i = i + 1 Loop Until Sheets("文字列リスト").Cells(i, 1) = "" End Sub ご教示いただければ幸いです。 よろしくお願いいたします。 文字列の置換 VB6で開発してます。 以下のようなことをやりたいのですが、 効率のよい方法はないものでしょうか? <やりたいこと> 文字列1の中にある『_』と同じ位置にある 文字列2の文字を『_』に置き換えたい。 [変換前] 文字列1:12_3456_ 文字列2:ABCDEFGH [変換後] 文字列1:12_3456_ 文字列2:AB_DEFG_ どなたかわかる方がいらっしゃったら教えて下さいm(_ _)m Pythonで変数自体を文字列として扱うには Pythonで変数自体を文字列として扱う関数はありますか? 以下は、xがそのような関数である場合の例です。 python = 123 >>>print python >>>123 >>>print x(python) >>>python ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム Pythonでの文字列の操作 とあるデータをPythonを使って整形したいのですが、文字列の操作でつまずいて居りますのでご教示いただけたらと思います。 編集したい文字列は以下のように"|"(パイプ)で7つのカラムに区切られています。 1|Jun 19, 2014 06:00:15.586099000|192.168.100.225|62763|192.168.100.255|8612|60 2|Jun 19, 2014 06:00:20.636389000|192.168.11.100|1900|249.255.255.250|1900|332 3|Jun 19, 2014 06:00:20.636879000|192.168.11.100|1900|219.255.255.250|1900|323 4|Jun 19, 2014 06:00:20.636879000|192.168.11.100|1900|209.255.255.250|1900|397 … 2行目が日付と時刻を示していることが分かるかと思います。それ以外の行の意味は気にしなくて結構です。 私が変更したいのは2行目のみで、以下のように変更したいのです。 1|Jun 19, 2014|06|192.168.100.225|62763|192.168.100.255|8612|60 2|Jun 19, 2014|06|192.168.11.100|1900|249.255.255.250|1900|332 3|Jun 19, 2014|06|192.168.11.100|1900|219.255.255.250|1900|323 4|Jun 19, 2014|06|192.168.11.100|1900|209.255.255.250|1900|397 … このように、日付と時間をパイプで区切り、更に時刻の部分の「分」以下の部分を削除したいのです。 上のデータをファイル入力として、下のデータをファイル出力したいのですが、いろいろ調べてもなかなか実現できません。 どのようなPythonスクリプトを書けばよいのか教えていただけたらと思います。 解説サイト等を紹介してくださっても嬉しいのですが、より具体的なコードを書いてくださった方にベストアンサーにさせていただこうと思います。 文字列置換 文字列置換 htmlのbody内のタグではない(画面に表示される)特定の文字列を別の文字列に置き換えるコードはどう書けばいいのでしょうか? ページ内文字列の置換について BODY内の全要素を参照して、特定文字列を置換するスクリプトを教えてください。 具体的に言うと、ブログなどで既に投稿済みの各記事などに必ずと言っていいほど入力している「■」を「◇」に替えたいのです。 いろいろ検索してみましたが、replace()かな? と言う程度は探れても、そこから先に進めない知識しかございません。 どうぞよろしくお願い申し上げます。 「python 文字列の切り取り」について教えてください 現在、学校のほうでpythonを使っているんですが、文字列の部分切り取りという方法がよくわりません。 切り取りの例としては ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0 ipfw add allow icmp from 1.2.3.0/24 to any icmptypes 0,4,18 という文字列がそれぞれあったら 上の文字列なら『0』、下の文字列なら『0,4,18』の部分だけ取り出すといった感じです 文字列の置換について こんにちは、kanpoと申します。 今回文字列の置換についての質問をさせていただきたいと思います。 やりたいことは以下のとおりです。 たとえば、あるStringデータに”あかさた#1728なはま#7586やらわ”などという 文字列が入ってるとします。 この文字列のなかから"#1728"と"#7586"を検索しそれぞれを #1728 → test #7586 → test2 と変換し最終的にもとのStringデータを ”あかさたtestなはまtest2やらわ”としたいのです。 説明が長くなってしまい申し訳ありませんがよろしくご教授ください。 環境は下記のとおりです。 RedhatLinux6.2J apache-1.3.12-0jp1.i386 php-3.0.15_i18n_ja-0vl2.i386 OpenOfficeで文章から特定文字列を抽出する OpenOfficeを利用しています。 かなり異例なのですが、 ・文章の中に特定の文字列があるかを検索→ある場合はTrue、ない場合はFalce ・Trueの場合VLOOKUPでその文字列を参照として指定された数値を返す このようなことをやりたいのですが、なにかうまくやる方法はないでしょうか? マクロの知識がないのでできれば関数でお願いします。 そのような方法がなければ文章中の特定の文字列を抽出、その抽出した文字を参照としてVLOOKUPで指定された数値を返す、という方法でも構いません。 例として画像を添付しておきます。 例と言うよりは、実際に作ってるものなのですが…… A列からE列までをVLOOKUPで使う参照表とし、G列の文字列を検索値として、D列の数値をI列の結果として返したい、ということです。 よろしくお願いします。 最終列の列番号を列文字に変換することはできますか? 例えばaaaがある列を探し、その列番号は4で列文字がDですが、 列番号から列文字をvbaで取得する方法はありますか? Sub Sample() Dim i As Long Dim Colmoji As String i = Rows(1).Find(What:="aaa", LookAt:=xlWhole).Column Colmoji = i 'ここで列文字に変換したい MsgBox i & "の列文字は" & Colmoji & "です" End Sub このようなコードを作ってみたのですが列文字に変換する方法がわかりません。 google app engine のpythonでの文字列操作につい google app engine のpythonでの文字列操作について教えてください。 google app engine で python を使い、開発しています。 このソース内で、以下の構文がエラーになります。 (関係ないところは、はしょっています) import string str = "kyouha ii tennki" i = str.find("ii") このfindメソッドで、こんなメソッドは使えませんと エラーがでてきます。 pythonは2.5です。 普通のpythonなら可能だとは思うのですが、 google app engine では string.findは使えないのでしょうか?? そのほかにも文字列操作のモジュールはあると思いますが、 google app engine で使用できるものがあれば教えていただきたいです。 pythonで、文字列を引数にして 例えば >>> a='1' >>> a.isalnum() True これを、文字列'isalnum'を引数にしてTrueを得られませんか。 たとえば >>> a='1' >>> a.item('isalnum')() True 上は、希望通りには動作しません。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Excelの文字列置換を止める 条件が少し異なったデータが多数あり、それぞれを別のExcelファイル(dat01.xls~dat10.xlsとします)としています。その中のデータの順番は同じにしてあります。 これらのデータ間の相違を見るため、新しいExcelファイル(summary.xlsとします)を作り、元のデータが入っているファイルの内容を参照するようにしているのですが、例えば summary.xlsのR1C1に=max([dat01.xls]!R1) というように式を記述するとdat01.xlsの1行の最大値が表示されます。このような形でdat01.xlsの色々な特徴量をsummary.xlsに表示させることができるのですが、その後同様にしてdat02.xlsの特徴量を表示させるため、"dat01.xls"という文字列を"dat02.xls"という文字列に変換するということをよくやるのですが、たまに変換する文字列を間違えて入力してしまうことがあります。 こうなると、その間違えた文字列となるファイル名が存在しないので、そのファイルがどこにあるのか1つ1つの変換毎に聞いてきて、その度にキャンセルを繰り返す必要があり、対象となる文字列が多いとキャンセルするのにとても時間がかかるので、途中で文字列変換を中止したいのですが、どのようにしたらよいかわかりません。 <cntl>+<alt>+<del>でExcelを強制終了という方法もたまに行いますが、できればそうでない方法を教えてください。 pythonの文字コードについて pythonの各文字コードにおける日本語の扱われ方について分からないことがあります。 日本語1文字の長さはユニコード文字列では1、8ビット文字列では3という説明が参考書には書いてありました。しかし、実際に実行してみると私の環境では結果が異なりました。さらに文字化けまで起きてしまいました。なぜなのでしょうか?回答お願いいたします。 windowsを使用しており、バージョンはpython2.7です。 以下、私の環境下での実行結果です。 >>> ustr=u"あいうえお" >>> len(ustr) 10 >>> len(ustr.encode("utf-8")) 20 >>> print ustr ¢¤¦¨ >>> print ustr.encode("utf-8") ツつツつ「ツつ、ツつヲツつィ >>> ustr2="あいうえお" >>> len(ustr2) 10 >>> print ustr2 あいうえお Pythonのopen()が使えません Pythonでアカウント作成部分のプログラムを書こうと思い、 画像のようなコードを書いたのですが、ファイルに書き込むこと が出来ません。使用してるPythonのバージョンは3.4.1です。 それと、こういう場合に、ただ登録情報の変数を参照する だけのためにクロージャを使うのは正しいのでしょうか? ご指導のほど、よろしくお願いいたします。 ◆文字列内の複数置換 いつもお世話になっています。 置換についてご教授下さい。 文字列($str)を置換して$afterのように変換させたいです。 配列($patterns)で置換のパターンは持っています。 $str = "あF03いうえF02おF01"; $patterns = array("F01" => "A", "F02" => "B", "F03" => "C"); $after = "あCいうえBおA"; 宜しくお願い致します。 ファイル内の文字列を置換 掲示板利用させていただきます。 現在、ファイル内の特定の文字列を置換し、 保存する方法を探しています。 できればスクリプト言語を利用したいと考えています。 sedコマンドを使用して文字列置換を行ったのですが 置換前と置換後のファイルで 文字コードと改行コードが変わってしまうのでダメでした; 「ファイル内の特定の文字列を任意の文字列に置換し、置換前と置換後で改行コードと文字コードを変えない方法」 をご存知の方、ご教示ください。 bash,perl,javaのどれでも結構です。 よろしくおねがいします。 文字列の置換で・・・ Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し その際に変換した文字数も表示してください。 basic→出力結果: "bbsic" 置換した文字数は1です。 PHPでの文字列置換について こんにちは PHPにて丸カッコ内の文字列を取得しようとしています。 対象の文字列は、「坂(さか)」という文字列の全角丸カッコ「()」内になります。 正規表現でやればすぐに取得できるのかもしれませんが、正規表現の知識が無いため 力ずくでやってみようとしました。 そこで、「(」で文字列の位置を取得して…と考えて色々やったのですが、 この全角丸カッコ「(」が、mb_strposでも位置を検知できず、 全角丸カッコ「(」を半角にして対応してみようかとmb_ereg_replace('(','(','坂倉武史(さかくらたけし)');としようとしても、変換されず困っております。 ちなみに「坂(さか)」という文字列は、 ネット上のあるHTMLから、file_get_contentsでURLを指定してから 取得して、その文字コードがEUC-JPなので、 mb_convert_encoding($dataXML, "UTF-8", "EUC-JP"); で、UTF-8に変更しております。 文字コードの問題のかもしれませんが、答えがみつかりません。 1。正規表現で取得できるのであれば、正規表現の書き方をお教えいただけますでしょうか。 2。正規表現が難しいのであれば、力ずくでやるのでこの「(」全角丸カッコの始まりの検知方法をお教えいただけますでしょうか。 PHPの実行環境は、 PHP5.3 mbstring.language japanese mbstring.internal_encoding UTF-8 mbstring.encoding_translation ON default_charset UTF-8 UNIX 文字コード UTF-8 ソース文字コード UTF-8 です どうぞよろしくお願いいたします。 16進数の文字列を文章に変える プログラミングに関しては全く分からない者です。 先日、とある文字列が友人から送られてきました。 0から9までの数字とaからfのアルファベットで構成されているので、16進数の暗号なのかと検討をつけました。 ネットで「16進数 文字列 変換」などと検索して、変換ツールなどを試してみたのですが、うまく変換されません。 Excelあたりを使って、どうにか解読する方法はありませんか? また、そういった文字列というのは、プログラミング言語や文字コードによって、同じ文章でも変わってしまうものなのでしょうか? よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
親切な回答をありがとうございました。よくわかりました。