combining split functions and count occurrences in python
I create a list with:
import os
files=[f for f in os.listdir(source) if f.endswith('.tif')]
sometimes this gives a result like:
files=['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['1', '001.tif']
['2', '002.tif']
['3', '003.tif']
but sometimes I get this result:
files=['file_0563_74-001.tif', 'file_0563_74-002.tif', 'file_0563_74-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['74', '001.tif']
['74', '002.tif']
['74', '003.tif']
I would like to create a flow control that if the first column (e.a. 74) has the same values, do someting else than when it contains different values (e.a. 1, 2, 3).
How do I accomplish that?
python string list split
add a comment |
I create a list with:
import os
files=[f for f in os.listdir(source) if f.endswith('.tif')]
sometimes this gives a result like:
files=['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['1', '001.tif']
['2', '002.tif']
['3', '003.tif']
but sometimes I get this result:
files=['file_0563_74-001.tif', 'file_0563_74-002.tif', 'file_0563_74-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['74', '001.tif']
['74', '002.tif']
['74', '003.tif']
I would like to create a flow control that if the first column (e.a. 74) has the same values, do someting else than when it contains different values (e.a. 1, 2, 3).
How do I accomplish that?
python string list split
By using anifstatement?
– SilverSlash
Nov 15 '18 at 9:18
I guess if is the best to do so
– Rene
Nov 15 '18 at 10:05
add a comment |
I create a list with:
import os
files=[f for f in os.listdir(source) if f.endswith('.tif')]
sometimes this gives a result like:
files=['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['1', '001.tif']
['2', '002.tif']
['3', '003.tif']
but sometimes I get this result:
files=['file_0563_74-001.tif', 'file_0563_74-002.tif', 'file_0563_74-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['74', '001.tif']
['74', '002.tif']
['74', '003.tif']
I would like to create a flow control that if the first column (e.a. 74) has the same values, do someting else than when it contains different values (e.a. 1, 2, 3).
How do I accomplish that?
python string list split
I create a list with:
import os
files=[f for f in os.listdir(source) if f.endswith('.tif')]
sometimes this gives a result like:
files=['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['1', '001.tif']
['2', '002.tif']
['3', '003.tif']
but sometimes I get this result:
files=['file_0563_74-001.tif', 'file_0563_74-002.tif', 'file_0563_74-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
returns:
['74', '001.tif']
['74', '002.tif']
['74', '003.tif']
I would like to create a flow control that if the first column (e.a. 74) has the same values, do someting else than when it contains different values (e.a. 1, 2, 3).
How do I accomplish that?
python string list split
python string list split
edited Nov 15 '18 at 9:19
jpp
102k2164115
102k2164115
asked Nov 15 '18 at 9:14
ReneRene
627
627
By using anifstatement?
– SilverSlash
Nov 15 '18 at 9:18
I guess if is the best to do so
– Rene
Nov 15 '18 at 10:05
add a comment |
By using anifstatement?
– SilverSlash
Nov 15 '18 at 9:18
I guess if is the best to do so
– Rene
Nov 15 '18 at 10:05
By using an
if statement?– SilverSlash
Nov 15 '18 at 9:18
By using an
if statement?– SilverSlash
Nov 15 '18 at 9:18
I guess if is the best to do so
– Rene
Nov 15 '18 at 10:05
I guess if is the best to do so
– Rene
Nov 15 '18 at 10:05
add a comment |
2 Answers
2
active
oldest
votes
You can use a set comprehension to extract unique types. Then use an if / else construct to apply logic depending on whether you have only one such type.
files = ['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
file_types = fn.split('-')[0].rsplit('_')[-1] for fn in files
if len(file_types) == 1:
# do something
else:
# do something else
add a comment |
Do in this way:
files = [f.split('_')[2].split('-') for f in files]
files
Output: [['1', '001.tif'], ['2', '002.tif'], ['3', '003.tif']]
Check if all first elements are same. If same then length of unique elements will be 1
if len(set([x[1] for x in files])) == 1: # checks first elements are same
# do something
else:
# do something
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53315957%2fcombining-split-functions-and-count-occurrences-in-python%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use a set comprehension to extract unique types. Then use an if / else construct to apply logic depending on whether you have only one such type.
files = ['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
file_types = fn.split('-')[0].rsplit('_')[-1] for fn in files
if len(file_types) == 1:
# do something
else:
# do something else
add a comment |
You can use a set comprehension to extract unique types. Then use an if / else construct to apply logic depending on whether you have only one such type.
files = ['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
file_types = fn.split('-')[0].rsplit('_')[-1] for fn in files
if len(file_types) == 1:
# do something
else:
# do something else
add a comment |
You can use a set comprehension to extract unique types. Then use an if / else construct to apply logic depending on whether you have only one such type.
files = ['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
file_types = fn.split('-')[0].rsplit('_')[-1] for fn in files
if len(file_types) == 1:
# do something
else:
# do something else
You can use a set comprehension to extract unique types. Then use an if / else construct to apply logic depending on whether you have only one such type.
files = ['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
file_types = fn.split('-')[0].rsplit('_')[-1] for fn in files
if len(file_types) == 1:
# do something
else:
# do something else
edited Nov 15 '18 at 13:44
answered Nov 15 '18 at 9:18
jppjpp
102k2164115
102k2164115
add a comment |
add a comment |
Do in this way:
files = [f.split('_')[2].split('-') for f in files]
files
Output: [['1', '001.tif'], ['2', '002.tif'], ['3', '003.tif']]
Check if all first elements are same. If same then length of unique elements will be 1
if len(set([x[1] for x in files])) == 1: # checks first elements are same
# do something
else:
# do something
add a comment |
Do in this way:
files = [f.split('_')[2].split('-') for f in files]
files
Output: [['1', '001.tif'], ['2', '002.tif'], ['3', '003.tif']]
Check if all first elements are same. If same then length of unique elements will be 1
if len(set([x[1] for x in files])) == 1: # checks first elements are same
# do something
else:
# do something
add a comment |
Do in this way:
files = [f.split('_')[2].split('-') for f in files]
files
Output: [['1', '001.tif'], ['2', '002.tif'], ['3', '003.tif']]
Check if all first elements are same. If same then length of unique elements will be 1
if len(set([x[1] for x in files])) == 1: # checks first elements are same
# do something
else:
# do something
Do in this way:
files = [f.split('_')[2].split('-') for f in files]
files
Output: [['1', '001.tif'], ['2', '002.tif'], ['3', '003.tif']]
Check if all first elements are same. If same then length of unique elements will be 1
if len(set([x[1] for x in files])) == 1: # checks first elements are same
# do something
else:
# do something
answered Nov 15 '18 at 10:13
Abdul QuddusAbdul Quddus
317
317
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53315957%2fcombining-split-functions-and-count-occurrences-in-python%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
By using an
ifstatement?– SilverSlash
Nov 15 '18 at 9:18
I guess if is the best to do so
– Rene
Nov 15 '18 at 10:05