0

私は以下のコードを書きました: その出力データ型は整数です。これらの整数をリストに入れたいです。私はpythonが初めてです。それを行う方法を提案してください。

lineNo = 0
css = open("/Users/john/Work/html/Ribbon/header.css")  
for line in css.readlines():
    lineNo = lineNo + 1
    if "width" in line:
        print(lineNo)
4

4 に答える 4

3

リスト内包表記でこれを行うことができます。この場合enumerate、から始まる各行の行番号を示します。ファイルのようなものを反復して各行を通過する1ため、必要はありません。.readlines()

[line_no for line_no, line in enumerate(css,1) if "width" in line]
于 2012-05-16T10:55:47.583 に答える
1

元のコードを使用すると、2 つの新しい行を追加するだけで済みます。

lineNo = 0
css = open("/Users/john/Work/html/Ribbon/header.css")  
myList = []  # create an empty list
for line in css.readlines():
    lineNo = lineNo + 1
    if "width" in line:
        print(lineNo)
        myList.append(lineNo)  # add your item to the list

Python に慣れてきたら、元のアプローチの代わりに行数を自動的に取得するために列挙型と組み合わせてリスト内包表記を検討することができます。これらの構成の使用については、@jamylak のソリューションを参照してください。

それまでの間、ここではリストの非公式な紹介とリストに関するPythonドキュメントを示します

于 2012-05-16T10:55:41.967 に答える
0
lineNo = []
css = open("/path/to/stylesheet.css")  
for i,line in enumerate(css.readlines(), start=1):
        if "width" in line:
            print (i, line)
            lineNo.append(i)


print (lineNo)
于 2012-05-17T03:09:22.763 に答える
0
def extractWidth(line):
    return line  # your code here

def loadWidths(path):
    with open(path) as f:
        return [extractWidth(line) for line in f if ("width in line")]

loadWidths("/Users/john/Work/html/Ribbon/header.css")
于 2012-05-16T12:12:02.917 に答える