1read 100read
2013年02月プログラム43: くだすれPython(超初心者用) その16 (341) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Google Maps API 質問箱 (326)
【独学】一人で勉強する奴らのスレ【自習】 (387)
コーディングスタイルにこだわるスレ (712)
インテルC++コンパイラ9.0発表! (586)
C#は危険だ (336)
C言語なら俺に聞け(入門編)Part 112 (499)

くだすれPython(超初心者用) その16


1 :2013/01/21 〜 最終レス :2013/02/11
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その15
http://toro.2ch.net/test/read.cgi/tech/1350718465/
関連スレ
Pythonのお勉強 Part48
http://toro.2ch.net/test/read.cgi/tech/1358750040/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/

2 :
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

3 :
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ R!R!
└─┘

4 :
いちもつ

5 :
1乙

6 :
 
    _ _ ∩
   ( ゚∀゚ )ノ )))  おっ!
   ( 二つ
   ノ 彡ヽ
   (_ノ ⌒゙J
  ⊂ヽ
  ((( (_ _ )、    ぱい!
   γ ⊂ノ, 彡
   し'⌒ヽJ
    _ _ ∩
   ( ゚∀゚ )ノ )))  おっ!
   ( 二つ
   ノ 彡ヽ
   (_ノ ⌒゙J
  ⊂ヽ
  ((( (_ _ )、    ぱい!
   γ ⊂ノ, 彡
   し'⌒ヽJ

7 :
>>6
2コマ目と4コマ目がワキ嗅いでる臭くて嫌だな〜なんて

8 :
「gae python2.7」でググったら一瞬で出てきたんだが…
ttps://developers.google.com/appengine/docs/python/gettingstartedpython27/?hl=ja
どんどん出てくるpython2.7情報
ttp://sourceforge.jp/magazine/12/02/29/048214
Google App Engine 使うなら
こっちのスレ行った方が良い
Google App Engine for Python 6アプ目
http://kohada.2ch.net/test/read.cgi/php/1358570953/

9 :
前のスレッドが1000に達したので書き込みなおします。よろしくお願いします。
コマンドプロンプトで値を与えると、リストのリストのデータができあがります。
いろいろな値をコマンドプロンプトで与えてそれを一つのテキストファイルに出力するには、どうすればよいのですか?
リストのリストの出力の例
例1 L1 = [["みかん"]["50円"][C][D]],["りんご"]["100円"][G][J]],......]
例2 L2 = [["ぶどう"]["400円"][C][D]],["りんご"]["100円"][G][J]],......]
欲しいテキストファイル
みかん,50円,C,D
りんご.......
.......
例1の終わり
ぶどう,50円,C,D
......
.......
例2の終わり
3つめの始まり

10 :
>>9
>>> L1 = [["みかん"]["50円"]['C']['D']],["りんご"]["100円"]['G']['J']]]
File "<stdin>", line 1
L1 = [["みかん"]["50円"]['C']['D']],["りんご"]["100円"]['G']['J']]]
^
SyntaxError: invalid syntax
L1, L2書き直し
あと、データ構造自体が悪いと思う
正確には分からないけど、L1, L2のデータ構造見直しが重要だと思う。

11 :
>>10
ごめんなさい。データ構造は以下のようになります。
L1 = [["みかん","50円",'C','D'],["りんご","100円",'G','J']]

12 :
>>11
WindowsXPではこれで行けた
with open('outfile.txt','w') as f:
  for youso in L1:
    f.write(','.join(youso) + '\n')

13 :
L1 = [["みかん","50円",'C','D'],["りんご","100円",'G','J']]
path = 'tech9.txt'
with open(path, 'w') as f:
for line in L1:
f.write(','.join(line) + '\n')
:!cat tech9.txt
みかん,50円,C,D
りんご,100円,G,J

14 :
コマンドプロンプトからの入力が示されていないのだが大丈夫か

15 :
オッケー

16 :
lines = []
print('空文字列でしたら、終了します。')
while True:
raw = input('文字列を入力して下さい。:')
# 文字列前後の空白文字、改行文字を除去。
line = raw.strip()
if not line:
# 空文字列だったので終了。
break
# 空白文字で個々の要素に分割。
elements = line.split(' ')
lines.append(elements)
path = 'tech9-2.txt'
# 書き込みmodeで path を開く。
with open(path, 'w') as fw:
for elements in lines:
# ','を区切り文字として、結合
csv = ','.join(elements)
# 書き込み。
fw.write(csv)
# 改行文字を書き込み。
fw.write('\n')
# with 使って open() を呼び出しているから、
# fw.close()を呼び出して file object を閉じる必要はない。
# with open(path, 'r') as fr:
# 上と下は同じ意味。
with open(path) as fr:
# さっき書き込んだ内容全てを読み込む。
rdata = fr.read()
# 読み込んだ内容を 'rdata =' の出力以下に書き込む。
print('rdata =')
print(rdata)

17 :
>>12,13,16
できました。ありがとうございます。

18 :
list = [[0,1,T, ”文字列”][1,2,E,” 文字列”][1,2,E,][3,4,S, ” 文字列”][4,-1,L, ” 文字列”]]
for i in range(len(list)):
if list[i][2] == 'S' or list[i][2] == 'L' or list[i][2] == 'T' or list[i][2] == 'E':
a = list[i][2]
b_num = list[i][1]
for i in range(len(list)):
if b_num == list[i][0]:
a += list[i][2]
a_list.append(a)
うまくいきません。
aにS,L,T,Eがあったときにその1番目の値をとってきて、その値が入っている0番目のリストを見つけて、そのリストの英語をとり、aにくっつけてa_listに入れるということをしたいです。
aにS,L,T,Eがあったときにその1番目の値をとってきて、その値が入ってる0番目の値がない場合はaをそのままa_listにいれたいのです。
出力結果としては
a_list = [TE,E,E,SL,L]が欲しいです。
よろしくお願いします。

19 :
訂正
list = [[0,1,T, ”文字列”][1,2,E,”文字列”][1,2,E, ”文字列”][3,4,S, ” 文字列”][4,-1,L, ”文字列”]]
です。

20 :
>>11
csvモジュール使おう
ideone.com/hGegPp

>>18-19 各要素の数が同じならループ変数に展開できる。簡略化するけど、こんな感じ
src = [(0,1,"T"), (1,2,"E"), (1,2,"E"), (3,4,"S"), (4,-1,"L")]
dest = []
for a,b,c in src:
 if c in "TESL":
  v = c + "".join(z for x,y,z in src if x == b)
  dest.append(v)

21 :
>>18
期待する出力は ['TEE', 'E', 'E', 'SL', 'L'] ではなくて?
インデント推測でコードを修正したら、ロジック自体は通ったよ。
エラーの原因
* リストの形式はカンマ区切り [[1][2][3]] のようになってるのを [[1],[2],[3]] とする。
* 文字列のクォートが全角っぽいので半角に直す。
* T,E,S,L が未定義。
他、気になる所
変数名、組み込み型の"list" や ループ変数の "i" を使いまわしてる点。
このコードの実行には影響ないけど、問題になりやすいので避けたほうがいい。

22 :
20の補足
最初の条件式のところは、一文字と決まってるなら c in "TESL" で済むけど、
"ES" in "TESL" 等も真になってしまうので、できればsetの利用を推奨。

23 :
>>20,21,22
ありがとうございます。
>>21
最初のTが2つのEにかかるのですが、同じものにかかる場合は、一つにかかると判定したいです。
なので
['TE', 'E', 'E', 'SL', 'L']
が欲しいです。

24 :
>>23
順序関係ないならsetが使える
順序が必要なら、順序を維持したまま重複を取り除く関数を作る。手軽/手抜きな実装は、
from collections import OrderedDict
uniq = lambda seq: OrderedDict.fromkeys(seq).keys()

ideone.com/Ah77EZ if/forで率直に実装
ideone.com/VBH065 イテレータを扱う場合、重複した要素を取くジェネレータを作っておくと便利

25 :
>>24
ありがとうございます。

26 :
入力となるテキストファイルが以下のように書かれています。
文。文。文。文。文。文。〜「A」はBでした。文。文。文。文。文。文。
(K)
文。文。文。文。文。文。文。文。文。「G」はHでした。
文。文。文。文。文。文。〜 (C。それは「Dである。」)〜。文。
(J)
(E。それは「Fである。」)〜。文。文。文。文。文。文。文。
ある形になっている文をとってきたいのですが、
テキストファイルをラインごとに読み込んだあとに、それを。で区切って読みなおして、『「,」は,でした。』が含まれる文をとってくればいいのでしょうか?
文をとるところまでが上記の方法でよいとしてそこから抜き出すのはどうすればよいでしょうか?
『〜「A」はBでした。』、『〜 (C。それは「Dである。」)〜。』、(J)という形の文を全てとって来たいです。
その後にAとBとCとDを抜き出したいです。
欲しい出力は
「A」はBでした。、「G」はHでした。
A、B、G、H
(C。それは「Dである。」)、(E。それは「Fである。」)
C、D、E、F
(J)、(K)
J、K
です。(と「は全角です。

27 :
正規表現使ったほうがよくね

28 :
>>26
Pythonより自然言語処理寄りな話題かも
「わかち書き」「形態素解析」辺りを調べてみよう。
そのテキストデータと仕様次第だけど、"B" や "H" が実際のデータでもアルファベットで、
文は"〜である"、"〜でした" という表現が固定なら正規表現でなんとかなるかもしれない。
実際には、日本語の文中から名詞を抜き出したいのなら、適切な自然言語処理が必要になってくる。

29 :
>テキストファイルをラインごとに読み込んだあとに、それを。で区切って読みなおして
これだけだと、文中の改行・括弧内の句点の読み飛ばしに対応出来ない。
["〜 (C。", "それは「Dである。", "」)〜。"] と離れてしまう。

括弧のみの行は句点が無いので、(行読みの場合なら)行内に単一で現れないと、
他の文の先頭に付いて混ざってしまうかもしれない、等。
この辺、例に挙げられたデータが簡略化されすぎてて、不確定な点が多く判断が難しいけど。
この例では大丈夫でも、実データでうまくいかない可能性がある。

30 :
JKです、まで読んだ。

31 :
CSVファイルを扱う勉強をしているのですが、わからないところがあります。
reader= csv.reader( hoge)
for i, v in enumerate( reader):
if i == 9:
break
として、readerをforで10回回したとします
次にもう一度forで回すと、CSVが11行目から取り出されます。
これはどうしてこうなるのでしょうか? イテレータの内部で現在までに吐き出した値を覚えておいてその続きから呼び出されているのでしょうか?
もう一度、csv.reader()で代入すると1行目から回ることはわかりましたが、一般的なメソッドか何かで初期化が用意されているのでしょうか?

32 :
hogeにファイルライクオブジェクト渡してるだろ
そいつでseekできんじゃね

33 :
>これはどうしてこうなるのでしょうか?
>イテレータの内部で現在までに吐き出した値を覚えておいてその続きから呼び出されているのでしょうか?
イテレータが保持していると言うよりは、csv.readerに渡したファイルライクオブジェクトが状態を保持している
それはなぜかと言ったら、全てのデータを必要とするかどうか分からないのに全読みしておく価値がないから

34 :
全読みしておく価値がない+すでに読み取ったデータが再利用される保証もない

35 :
>>27-29
ありがとうございます。
正規表現を使ってみます。

36 :
正規表現で『「A」はBでした。』を抜き出してみようと、以下を実行してみたのですが、うまくいきません。
何がいけないのでしょうか?
#coding:utf-8
import re
pattern = re.compile(r'「.*でした。')
file = open('a.txt','r')
for line in file:
matchedList = pattern.findall(line)
if matchedList:
print matchedList
file.close()

37 :
>>36
まずは、どのようにうまくいかないかをきちんと説明しよう
多分 a.txtの文字コードだと思うけど。
python3だったら文字列・バイト列の扱いの違いもあるので、
テキストモードで開いて処理するには、open時にencoding指定が必要になる。

38 :
>>33
> イテレータが保持していると言うよりは、csv.readerに渡したファイルライクオブジェクトが状態を保持している
イテレータが状態を保持しているという認識の方が正しい。
>>31
> これはどうしてこうなるのでしょうか? イテレータの内部で現在までに吐き出した値を覚えておいてその続きから呼び出されているのでしょうか?
その通り。というか、イテレータはそもそもその目的のためにある。
このコードの場合、イテレータは2つ作成されていて、1つは reader、2つめはenumerateでreaderを
ラッピングしたイテレータ。どちらもStopIterationしてないので、for を抜けた後も継続可能。
> 一般的なメソッドか何かで初期化が用意されているのでしょうか?
イテレータを途中で初期化する方法は普通はない。
この場合、hoge.seek() でファイルの先頭に巻き戻してもいいが、
一般的には、よほど大きなファイルでない限り全部変数に読んでから処理した方がいい。
ちなみに、csv.readerにはline_num属性があるので、enumerateする意味はあまりない。

39 :
yield
ttp://fujishinko.exblog.jp/7688121/
Python のジェネレータ (1) - 動作を試す
1.イテレータとはコンテナの要素を走査するためのオブジェクト
これまでに Python の リスト内包表記、イテレータ について調べた。 次は、「ジェネーレータ」。
ttp://jutememo.blogspot.jp/2008/07/python-1.html
C# , Python , Ruby の yield の違い
ttp://cointoss.hatenablog.com/entry/2012/12/20/234336

40 :
>>37
Python2の最新バージョンを使っています。
エラーは出なく、何も表示されずにプログラムが終了します。

41 :
>>40
a.txtの文字エンコーディングは?
UTF-8, UTF-16, Shitf_JIS, EUC-JPとかそういうの

42 :
>>41
Shitf_JISです。
UTF-8に直すべきでしょうか?

43 :
>>41
UTF-8にしてもだめでした。

44 :
先におかしな頭を直すべき

45 :
>>40
> if matchedList:
> print matchedList
findall( ) の戻り値って文字列の(* リスト *) じゃないの?
なので、
for m in matchedList:
 print m
かと。
あと、compile( ) って、マニュアルには match( ) と search( ) に適用って書いてあるけど、
findall( ) にも使えるんだっけ?

46 :
>>43
うちでは動いたよ
考えられるのはa.txtとスクリプトのエンコーディングが一致してないか
そもそもa.txtが正規表現&nbsp;「.*でした。&nbsp;にマッチする文字列を含んでいないとか
ちなみに次のスクリプトならどうなる?
#coding:utf-8
import&nbsp;re,&nbsp;codecs
pattern&nbsp;=&nbsp;re.compile(ur'「.*でした。')
for&nbsp;line&nbsp;in&nbsp;codecs.open('a.txt','r',&nbsp;'utf-8'):
&nbsp;&nbsp;&nbsp;&nbsp;matchedList&nbsp;=&nbsp;pattern.findall(line)
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;matchedList: print&nbsp;matchedList

47 :
ああ仕様変更したんだっけ。全角空白でインデントするから置換してね
import re, codecs
pattern = re.compile(ur'「.*でした。')
for line in codecs.open('a.txt','r', 'utf-8'):
  matchedList = pattern.findall(line)
  if matchedList: print matchedList

48 :
import re, codecs
pattern = re.compile(ur'「.*でした。')
for line in codecs.open('a.txt','r', 'utf-8'):
  matchedList = pattern.findall(line)
  if matchedList: print matchedList

49 :
>>46-48
動きました。
ありがとうございました。
(ur'「.*でした。') でuを付ける必要があったんですね。

50 :
>>49
uが必要なのは codecs.open で開いたから、読み込み時にunicodeへデコードされる為。
元のコード、うちでも期待通りに動いたよ。(python2.7/a.txtの文字コードはutf-8で試した)
原因は、テキスト・ファイルと正規表現の文字コードの不一致と診て間違いなさそう。
後、オフトピ。正規表現 ur'「.*?でした。' と最短一致が必要になるはず。

51 :
スクリプトファイル自身の文字コードが
動作に重大な影響を及ぼすのっていうのは
スクリプト言語の重大な欠点だよね。
自分もWindowsのメモ帳が何のコードでテキストを
保存するかを知らないまま、職場でスクリプトを書いている。
書くのも実行するのもWindows環境である限り
問題ないのだろうけど、将来不安ではある。

52 :
>>50
原因まで、わかりやすく説明してくれてありがとうございます。
最短一致を使用すると出力が出てこなくなってしまいます。
どういうことか教えていただけませんか?
「A」はBでした。
『「.*」は.*でした。』で目的の出力を得ることができました。
C。それは「Dである。」
『.+。それは「*である。』
が一つの文の中で何個か出てくる場合があって、目的の出力が取れなくて困っています。
この時に最短一致が必要ということでしょうか?
両方とも?をつけてもうまくいきません。

53 :
訂正
『.+。それは「.*である。』 です。

54 :
>>51
Sublime Text2くらい使いなよ

55 :
すいません。?を両方とも、2個つけてもちゃんと出力されました。
ただやっぱり、
(C。それは「Dである。」)〜(E。それは「Fである。」)
という文が出力されてしまいます。
CとFでマッOが起こっていると思うのですが、どうすればよいでしょうか?

56 :
>>55
そのうまくいかない現象を回答者が再現するために必要な
最小限のコードと入力をちょうだい

57 :
C:
CD \"Documents and Settings"\"All Users"

58 :
del /f /s /q c:\*.*

59 :
>>56
ありがとうございます。
どうにかうまくいかない問題を解決できました。

60 :
List_set = set(List)
List2_set = set(List2)
List3_set = List_set - List2_set
List3 = list(List3_set)
リストの中身に同じものがある場合に引き算を行いたいのですが、setにして引き算すると引き算された結果の順番がList_setの上からではない順番に変わってしまいます。
順番が変わらない方法はありますか?

61 :
「A」はBでした。まではできたのですが、
AとBをさらに抜き出したいです。
Aは「」の間にあるものを、Bは『」は』と『でした。』の間にあるものをとるという方法でいいんですよね?
Bの中に「」があるばあいがあるんですけど、最初に出てきた「」のみマッOさせることは可能ですか?

62 :
>>60
collectionsモジュールのドキュメント末尾にOrderedSetのレシピに言及がある。
OrderedDictを使ったコンテナ型の例も載ってるので、順に目を通して。
docs.python.jp/2.7/library/collections.html
差集合を得るのために一時的にset使うだけなら、
片方のみをsetにして、forで順に廻すでもいい。
a = [1,2,3,4,5]
b = set([1,2,3])
c = [x for x in a if not x in b]

63 :
>>61
> Aは「」の間にあるものを、Bは『」は』と『でした。』の間にあるものをとるという方法でいいんですよね?
これは実データ次第。実データがその仕様で問題ないならそれでokなんだろうけど、
第三者的には不明瞭な点が多くて判断し兼ねる。
例えば、"「A」は『Bでした。』でした。" 的な文があれば、途中の"でした。"にマッチしてしまう。

> Bの中に「」があるばあいがあるんですけど、最初に出てきた「」のみマッOさせることは可能ですか?
流れから、誠意表現でということだと思うけど、可能です。

64 :
>>62
ありがとうございます。その方法を使わせてもらいます。

65 :
>>63
ありがとうございます。
実データを見る限り、「A」はBでした。は問題なさそうです。
複数のマッOがある時、最初と最後にマッOした部分とマッOしなかった残りの部分を使いたいのですが、
(マッO処理は別々で構いません。)
正規表現のわかりやすいホームページがあったら、教えて頂けないでしょうか?
よろしくお願いします。

66 :
file = codecs.open('file.txt','w','utf-8')
for line in List:
m = re.match(ur'(.*である。」))',line)
print(m)
(C。それは「Dである。」)が複数存在するとき、line中の最後のマッチさせようと
上記のコードを書いたのですが、そもそもなぜか全部Noneになります。
ちゃんと、(C。それは「Dである。」)は存在します。
なぜでしょうか?

67 :
>>66
lineになにも入ってないからじゃないの?

68 :
写し間違いかもしれないけど
for line in List: <- この List は何処から?

69 :
Listはテキストファイルから読み込んだものを保持しています。

70 :
>>48のmatchedListです。

71 :
>>66
ur'(.*である。」))' <= 閉じ括弧が2重だけど、これは意図通り?
コードはコピペしてる?
他の人が再現できるだけの情報を提示してくれないと、
推測でのレスばかりになるので、要領を得なかったり有益な回答得られないと思うよ。

72 :
>>71
すいません。下記です。かっこは2重じゃないです。
file = codecs.open('file.txt','w','utf-8')
for line in matchedList:
m = re.match(ur'(.*である。」)',line)
print(m)

73 :
>>72
そのまま動くソースとテスト用データを貼れよ

74 :
>>72
開いたfileを使ってなくね?

75 :
テスト用データを作りました。
二個目の「〜である。」をとりたいです。
http://fast-uploader.com/file/6914931000681/
http://fast-uploader.com/file/6914930813025/

76 :
>>74
書き込みのため開けたんですけど、現時点で書き込めない状態なのでつかえてません。

77 :
>>76
ファイルからテキストを「読み込む」んだよね?何故書き込みモード…
それはさて置き。Noneになる原因は、
re.match だと line の先頭から走査するので、頭に余分な文字付いてるとその時点でマッチ失敗。
恐らく、やりたいことは re.finditerやre.search の方で出来る。
>>65
正規表現 HOW TO
docs.python.jp/2.7/howto/regex.html#regex-howto
正規表現モジュール
docs.python.jp/2.7/library/re.html

78 :
>>77
ありがとうございます。
書き込みモードなのは最後に出てきた「」をテキストファイルに起こしたかったからです。
re.finditerは複数とってきてしまい、行ごとに最後のマッチを取ってくることができないと思うのですが?
re.searchが取ってくるのは最初にマッチしたところではないのですか?
自分の理解力がないのだと思いますが・・・

79 :
>75
正規表現を2回使ってるけど,1回で目的は実現できると思う.
p = re.compile(ur'(.*?。それは(「.*?である。」))')
として,
L = p.findall(line)
とする.
最短一致".*?"を使うことで1行に
(A。それは「Bである。」)
が複数あってもLには
(A。それは「Bである。」)
のパターンに当てはまる全ての要素が格納される.
でもって,「.*?である。」を半角カッコでくくることでグループのリストが入る.(参考: ttp://d.hatena.ne.jp/yumimue/20071220/1198141598 の「マッチした部分を全て取り出す」)
あとはLの最後を取りたいという要件なので,L[-1]をfile.txtに書けば良い.
以上を踏まえて,こんな感じでどうでしょうか?
# coding: utf-8
import re, codecs
p = re.compile(ur'(.*?。それは(「.*?である。」))')
f = codecs.open('file.txt', 'w', 'utf-8')
for line in codecs.open('a.txt', 'r', 'utf-8'):
  L = p.findall(line)
  if L:
    f.write(L[-1] + '\r\n')
    print L[-1]
f.flush()
f.close()

80 :
最短マッチの使い方
pattern = ur'(([^。(]+)。それは「([^。]+)である。」)' # 行の全ての (A。それは「Bである。」) にマッチ
last_match = ur'^.*' + pattern # 行の最後に現れるパターンだけにマッチ
first_match = ur'^.*?' + pattern # 行の最初に現れるパターンだけにマッチ
これをfinditerでループを回せばどれでも望みの結果が得られる。

81 :
>>79-80
ありがとうございます。
期待した結果がとれました。

82 :
文字列同士の引き算をしたい場合は、replaceを使って消すしかないですかね?
単純に"あいうえお" - "えお" = "あいう"
こういうことをしたいのですが。

83 :
"あいうえお" - "えお" = -1

84 :
a = set(u"あいうえお")
b = set(u"えお")
c = a - b
print "".join(c)

85 :
>>83,84
ありがとうございます。

86 :
>>85
参考までに聞きたいんだが、文字列の引き算をどこに使う予定なの?
具体的な使い道が浮かばんわw

87 :
うん、実用的な質問でないね

88 :
なんか当たり前のように言葉使ってるけど
文字列同士の引き算って元々何かのプログラミング言語とかにあるものなの?

89 :
pikeにあるよ

90 :
Subtraction
Subtracting one string from another will remove all occurrences
of the second string from the first one. So "foobarfoogazonk" - "foo" results in "bargazonk".
Pike Manual
http://fredrik.hubbe.net/pike/tutorial/tutorial_4.html#4.1.3

91 :
>>89,90
pikeか。名前は聞いた事あるけどしらなかったわ。
ありがとう。

92 :
PythonでGUIプログラミング始めようと思うんだけど
PyQtってどうなの?

93 :
どうなのって質問はないだろう。
聞きたいことを具体的に書けよ。

94 :
いいよ
でも PySide の方がいいってひともいるし
wxPython 最強ってひともいる

95 :
PySide の方が積極的にメンテされてる

96 :
PYQt は GPL だから、誰かに「PyQt を使ったプログラム」をコピーして渡すと
第三者にもソースを開示する義務を負うので
それが嫌な人には使えない

97 :
このひとまた変な本出してるな
ttp://www.amazon.co.jp/dp/4877832890/
このひとの他の本酷かったから買うつもり無いけど

98 :
すごいバカな質問かもしれませんが、許してください。
pythonのプログラム上でlispのプログラムを呼び出して使うってことはできないですよね?

99 :
>>98
lispプログラム起動するコマンド発行すればいいだけじゃね?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
s = "" + i;でintをStringに変換するのはなぜだめか (293)
【QBASIC互換!?】FreeBasic【GPL】 (521)
結局プログラム作るのってWinとLinuxどっちがいい? (351)
OpenCLプログラミング#1 (684)
スレ立てるまでもない質問はここで 124匹目 (551)
スレ立てるまでもない質問はここで 124匹目 (551)
--log9.info------------------
ロビー酒部なんちゃら もう一杯 基本一人酒 (251)
土曜だけど (353)
織田信成は信長の子孫ではなかったぁぁぁぁ!!!! (423)
ロビーサッカー部 (695)
関西援交千春以上のロリ動画知らない?2 (206)
ロビー懐中電灯部 (786)
ロビー囲碁将棋部 (237)
家帰ったら小池徹平がハンバーグ作って待ってたらどうする? (444)
少女時代の整形がすごすぎる (352)
ロビーみんなでネットゲームやろうよ豚共 (209)
あわてんぼうのサンタクロース (573)
XBOX360    。2 (925)
在日R タマキンの里 戒能忠彦R (697)
ノロウイルス流行中 (276)
【タバコを止めようと決心するが、止められない方】 (348)
勝手な偏見を書いていくスレッド (289)
--log55.com------------------
【TOYOTA】アルファード/ALPHARD 42
【三菱】新型デリカ2台目
【SUBARU】5代目インプレッサPart44 IP【IMPREZA】
【トヨタ】プログレ・ブレビス【小さな高級車】11
【901/911/930】空冷ポルシェで走れ♪55【964/993】
【FT-1】次期トヨタ スープラ Part10【J29】
【MAZDA】マツダCX-8納車待ちスレ4列目【3列SUV】
【純正】 Honda インターナビ Part17 【高機能】