2017-10-19 106 views
-1

我想刪除點後面的字符。點後有6個字符。它沒有改變。如何刪除點後面的字符?

輸入(字符串):

52.01317215 1121.53601074 1049.63146973 1540.70495605 
517.47277832 85.62935638 553.46118164 106.97449493 
1.70361996 550.58435059 159.12145996 714.25854492 

輸出(串)(我想):

52 1121 1049 1540 
517 85 553 106 
1 550 159 714 

任何幫助,將不勝感激...

+2

'INT (52.01317215)' –

+0

@Salih,它們是以int格式存儲在一個變量或字符串中存儲的在一個變量? –

+0

@ChetanVasudevan我已更新。抱歉缺少信息。 –

回答

2

如果您的輸入是multili NE串和你的輸出應該是另一種多行字符串與所有的小數部分刪除,你可以使用正則表達式:

import re 
result = re.sub(r"\.\d+", "", mystring) 

>>> print(result) 
52 1121 1049 1540 
517 85 553 106 
1 550 159 714 
+0

感謝您的回答,我會盡力的。 –

1

一個方法是通過正則表達式:

s = """ 
52.01317215 1121.53601074 1049.63146973 1540.70495605 
517.47277832 85.62935638 553.46118164 106.97449493 
1.70361996 550.58435059 159.12145996 714.25854492 
""" 
import re 
final_data = map(int, re.findall("\d+(?=\.)", s)) 

輸出:

[52, 1121, 1049, 1540, 517, 85, 553, 106, 1, 550, 159, 714] 

如果你不想鑄造到整數最終弦,你可以試試這個:

new_data = [b for b in [re.findall("\d+(?=\.)", i) for i in s.split("\n")] if b] 

輸出:

[['52', '1121', '1049', '1540'], ['517', '85', '553', '106'], ['1', '550', '159', '714']] 
+0

感謝您的回答,我會盡力的。 –

1
s = '''52.01317215 1121.53601074 1049.63146973 1540.70495605 
517.47277832 85.62935638 553.46118164 106.97449493 
1.70361996 550.58435059 159.12145996 714.25854492''' 

s2 = '' 
use_char = True 
for c in s: 
    if c == '.': 
     use_char = False 
    elif c == ' ': 
     use_char = True 
    if use_char: 
     s2 += c 
print(s2) 

結果:

52 1121 1049 1540 85 553 106 550 159 714 
+0

感謝您的回答,我會盡力。 –

+0

如果你喜歡我的回答,這將是很好,如果你可以投票。 – mrCarnivore

2

您可以使用類似下面的一個例子,你應該在這裏使用首先拆分進入字符串通過for循環,然後再次需要使用拆分來獲得它與分開。

s="52.01317215 1121.53601074 1049.63146973 1540.70495605 517.47277832 
    85.62935638 553.46118164 106.97449493 1.70361996 550.58435059 
    159.12145996 714.25854492" 
    for s1 in s.split(" "): 
     print(s1.split(".")[0]) 

而且您的解決方案看起來像

+0

感謝您的回答,我會盡力。 –

+0

@SalihKaragoz,它應該可以正常工作,我在執行代碼後將其與輸出一起發佈。 –

0

你可以試試這個

str="""52.01317215 1121.53601074 1049.63146973 1540.70495605 
517.47277832 85.62935638 553.46118164 106.97449493 
1.70361996 550.58435059 159.12145996 714.25854492""" 
for i in str.split(): 
    print '%d' % float(i) 
+0

感謝您的回答,我會盡力的。 –

+0

@Sandeep:for str_split: print(int(float(i))) 會更好。 – mrCarnivore